Что нового

Запуск функции при активации Combo или Input в GUI

RavdonikaS

Новичок
Сообщения
68
Репутация
4
Есть ли такая возможность когда я навожу курсор на элемент Combo или Input в GUI и клацаю на него(активирую для ввода) что бы запускалась пользовательская функция или переменной присваивалось значение
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <ComboConstants.au3>

GUICreate("Input Changed Demo GUI", 300, 180)

$Input_1 = GUICtrlCreateCombo("Combo", 20, 10, 260, 20)
$Input_2 = GUICtrlCreateEdit("Edit", 20, 40, 260, 50)
$Input_3 = GUICtrlCreateInput("Input", 20, 100, 260, 20)

$Exit = GUICtrlCreateButton("Exit", 20, 140, 60, 20)

GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE, $Exit
			ExitLoop
	EndSwitch
WEnd

Func _Input_GotFocus($ID)
	Printf("Input [" & $ID & "] Got Focus" & @LF)
EndFunc

Func _Input_LostFocus($ID)
	Printf("Input [" & $ID & "] Lost Focus" & @LF)
EndFunc

Func WM_COMMAND($hWnd, $nMsg, $wParam, $lParam)
	Local $nNotifyCode = BitShift($wParam, 16)
	Local $nID = BitAND($wParam, 0xFFFF)
	Local $hCtrl = $lParam
	
	Switch $nID
		Case $Input_1, $Input_2, $Input_3
			Switch $nNotifyCode
				Case $EN_SETFOCUS, $CBN_SETFOCUS
					_Input_GotFocus($nID)
				Case $EN_KILLFOCUS, $CBN_KILLFOCUS
					_Input_LostFocus($nID)
			EndSwitch
	EndSwitch
	
	Return $GUI_RUNDEFMSG
EndFunc

Func Printf($Str, $Line = @ScriptLineNumber)
	ConsoleWrite(@LF & "+======================================================" & @LF & _
			"--> Script Line (" & $Line & "):" & @LF & "!" & @TAB & $Str & @LF & _
			"+======================================================")
EndFunc
 
Верх