Войти

Показать полную графическую версию : [решено] Графика вместо стандартной кнопки...


sashadeg
26-06-2009, 00:09
Можно сделать рисунок вместо кнопки? Если можно, то всплывает ещё вопрос: А как сделать чтобы при нажатии на рисунок он менялся?(чтобы симулировать "псевдо-нажатие" или как то так...)
Если можно такое осуществить, подскажите примерами...

Creat0R
26-06-2009, 01:06
как сделать чтобы при нажатии на рисунок он менялся?(чтобы симулировать "псевдо-нажатие" или как то так...) »
Не уверен что понял... нужно менять после нажатия, или к примеру, при удерживании кнопки (после отпускания вернуть изначальную картинку)?

FlatX007
26-06-2009, 03:55
Больше ничё умнее не смог придумать ... (Изображения кнопок запихнёш в папку со скриптом) ... или всё сразу в архиве :victory:

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Left = 232
$Top = 8
$Width_Button = 95
$Height_Button = 45

Global $PushButtonINFO

$Form = GUICreate("Test Button", 332, 58, 302, 218)
$ButtonINFO = GUICtrlCreateButton("Справка", $Left, $Top, $Width_Button, $Height_Button, $BS_BITMAP)
GUICtrlSetImage($ButtonINFO, @ScriptDir & '\' & 'Help.bmp')
GUISetState(@SW_SHOW)

While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
Exit

Case $GUI_EVENT_PRIMARYDOWN
Switch $nMsg[3]
Case $Left To $Left + $Width_Button
;~ MsgBox(0,'',$nMsg[3] & " - " & $nMsg[4])
GUICtrlSetImage($ButtonINFO, @ScriptDir & '\' & 'Cancel.bmp')
$PushButtonINFO = 1
EndSwitch

Case $GUI_EVENT_PRIMARYUP
If $PushButtonINFO = 1 Then
GUICtrlSetImage($ButtonINFO, @ScriptDir & '\' & 'Help.bmp')
MsgBox(0,'','Готово')
$PushButtonINFO = 0
EndIf

EndSwitch
WEnd

Creat0R
26-06-2009, 04:41
Неплохо, только зачем выполнять событие если юзер отпустил кнопку не на ней самой? :)

Вот тоже самое с использованием GUICtrlSetOnHover UDF (http://www.autoitscript.com/forum/index.php?showtopic=55120):

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUICtrlSetOnHover_UDF.au3>
;

$PushButtonINFO = 0

$Form = GUICreate("Test Button", 330, 70)

$ButtonINFO = GUICtrlCreateButton("Справка", 20, 20, 90, 40, $BS_BITMAP)
_GUICtrl_SetOnHover(-1, -1, "_HoverButton_Proc", "_ButtonEvent_Proc", "_ButtonEvent_Proc", 0, 0)

GUICtrlSetImage($ButtonINFO, @ScriptDir & '\Help.bmp')

GUISetState(@SW_SHOW)

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
EndSwitch

If $PushButtonINFO = 1 Then
$PushButtonINFO = 0
MsgBox(0, '', 'Готово')
EndIf
WEnd

Func _ButtonEvent_Proc($iCtrlID, $iEvent)
Switch $iEvent
Case 1
GUICtrlSetImage($iCtrlID, @ScriptDir & '\Cancel.bmp')
Case 2
GUICtrlSetImage($iCtrlID, @ScriptDir & '\Help.bmp')
$PushButtonINFO = 1
EndSwitch
EndFunc

Func _HoverButton_Proc($iCtrlID)
GUICtrlSetImage($iCtrlID, @ScriptDir & '\Help.bmp')
EndFunc

sashadeg
26-06-2009, 10:21
при удерживании кнопки (после отпускания вернуть изначальную картинку)? »
Ты ПРАВЕЛЬНО МЕНЯ ПОНЯЛ :)

Вот тоже самое с использованием GUICtrlSetOnHover UDF: »
У меня не работает... Выдает ошибку на 4 строке (#include <GUICtrlSetOnHover_UDF.au3>)
Версия AutoIt: 3.2.12.1

FlatX007
26-06-2009, 14:06
GUICtrlSetOnHover_UDF - надо было отдельно скачать :)

sashadeg
26-06-2009, 14:11
простите, но я не понимаю как это использовать... Мне что в папку с AutoIt это как дополнительную библиотек ставить или что???

==============================
ОХТЫНИХИРАСИБЕ!!!!! РАБОТАЕТ!!!! ААААА!!!! АХРИНЕТЬ!!!!! ПИПИСЕЦ AUTOIT THE BEST!!!!!

============================================
Спасибо ребята!!! Я очень рад :)

====================

решено...




© OSzone.net 2001-2012