Что нового

[Элементы GUI] Чтение InputBox и выполнение соответствующей функции "налету" (при вводе)

Pelerin

Осваивающий
Сообщения
81
Репутация
23
Вобщем, подозреваю что можно такое сделать, но интересно как?
Мысли бегут в сторону windows massage. Но я плоховато в них понимаю.

Надеюсь кто-то подскажет какое сообщение можно использовать.
А может есть и дугие способы... Но у меня что-то туговато идет :wacko:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Код:
#Include <GUIConstantsEx.au3>
#Include <EditConstants.au3>
#Include <WindowsConstants.au3>

$hForm = GUICreate('MyGUI', 300, 50)
$Input = GUICtrlCreateInput('', 10, 15, 280)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
GUISetState()

Do
Until GUIGetMsg() = -3

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
	Switch $hWnd
		Case $hForm
			Switch BitAND($wParam, 0xFFFF)
				Case $Input
					Switch BitShift($wParam, 16)
						Case $EN_CHANGE
							ConsoleWrite(GUICtrlRead($Input) & @CR)
					EndSwitch
			EndSwitch
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 
Автор
Pelerin

Pelerin

Осваивающий
Сообщения
81
Репутация
23
Yashied
Спасибо огромное!
Как я понял
$hWnd - хэндл окна
$wParam - id элемента
А что за параметры $iMsg и $lParam? В функции они не используются..
И почему именно BitAnd и BitShift?

Я понимаю, вы меня отправите читать MSDN, но если честно я так и не понял что возвращает каждое сообщение?

Заранее спасибо.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Pelerin сказал(а):
Я понимаю, вы меня отправите читать MSDN, но если честно я так и не понял что возвращает каждое сообщение?
Отправлю, но не MSDN, а вот это, только прочитай пожалуйста до конца.
 
Автор
Pelerin

Pelerin

Осваивающий
Сообщения
81
Репутация
23
Yashied
Отличная вещь эта ваша статья!!!! :ok:

Правда не совсем разобрался с битовыми операторами(почему они используются в вашем примере)... Но это уже другой вопрос. Помню читал про них в учебнике по с++, но это было давно и не правда :smile:.

Тему можно считать закрытой.
 
Верх