-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
Графика вместо стандартной кнопки...
Можно сделать рисунок вместо кнопки? Если можно, то всплывает ещё вопрос: А как сделать чтобы при нажатии на рисунок он менялся?(чтобы симулировать "псевдо-нажатие" или как то так...)
Если можно такое осуществить, подскажите примерами...
|
Цитата:
Цитата sashadeg
как сделать чтобы при нажатии на рисунок он менялся?(чтобы симулировать "псевдо-нажатие" или как то так...) »
|
Не уверен что понял... нужно менять после нажатия, или к примеру, при удерживании кнопки (после отпускания вернуть изначальную картинку)?
|
Больше ничё умнее не смог придумать ... (Изображения кнопок запихнёш в папку со скриптом) ... или всё сразу в архиве :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
|
Неплохо, только зачем выполнять событие если юзер отпустил кнопку не на ней самой? :)
Вот тоже самое с использованием GUICtrlSetOnHover UDF:
Код:
#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
|
Цитата:
Цитата Creat0R
при удерживании кнопки (после отпускания вернуть изначальную картинку)? »
|
Ты ПРАВЕЛЬНО МЕНЯ ПОНЯЛ :)
Цитата:
Цитата Creat0R
Вот тоже самое с использованием GUICtrlSetOnHover UDF: »
|
У меня не работает... Выдает ошибку на 4 строке (#include <GUICtrlSetOnHover_UDF.au3>)
Версия AutoIt: 3.2.12.1
|
GUICtrlSetOnHover_UDF - надо было отдельно скачать :)
|
простите, но я не понимаю как это использовать... Мне что в папку с AutoIt это как дополнительную библиотек ставить или что???
==============================
ОХТЫНИХИРАСИБЕ!!!!! РАБОТАЕТ!!!! ААААА!!!! АХРИНЕТЬ!!!!! ПИПИСЕЦ AUTOIT THE BEST!!!!!
============================================
Спасибо ребята!!! Я очень рад :)
====================
решено...
|
Время: 06:05.
© OSzone.net 2001-