Cytrus
Новичок
- Сообщения
- 110
- Репутация
- 3
Не получается получение сообщений WM_NOTIFY.
Код:
#include <WindowsConstants.au3>
Global $hw = GUICreate('', 400, 400)
Global $ic = GUICtrlCreateEdit('', 10, 10, 100, 50, BitOr(0x003010c0, 0x00000080))
Global $ia = GUICtrlCreateInput('', 10, 70, 100, 50)
Global $hi = GUICtrlGetHandle($ic)
Global $ha = GUICtrlGetHandle($ia)
GUISetState()
GUIRegisterMsg(0x004E, "WM_NOTIFY")
Do
Until GUIGetMsg() = -3
GUIDelete()
Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg, $wParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR = DllStructCreate("struct;hwnd hWndFrom;uint_ptr IDFrom;INT Code;endstruct" & ";int Ind", $lParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
; MsgBox(0, '$i' & ' ' & $hi, $hWndFrom & @CR & $iCode & @CR & $iIDFrom & @CR & '1')
Switch $hWndFrom
; MsgBox(0, '$i' & ' ' & $hi, $hWndFrom & @CR & $iCode & @CR & $iIDFrom & @CR & '2')
Case $hi
MsgBox(0, '$i' & ' ' & $hi, $hWndFrom & @CR & $iCode & @CR & $iIDFrom & @CR & '3')
Switch $iCode
MsgBox(0, '$i' & ' ' & $hi, $hWndFrom & @CR & $iCode & @CR & $iIDFrom & @CR & '4')
Case $NM_DBLCLK
MsgBox(0, '$i' & ' ' & $hi, $hWndFrom & @CR & $iCode & @CR & $iIDFrom & @CR & '5')
Case $NM_CLICK
MsgBox(0, '$i' & ' ' & $hi, $hWndFrom & @CR & $iCode & @CR & $iIDFrom & @CR & '6')
Case $NM_RETURN
MsgBox(0, '$i' & ' ' & $hi, $hWndFrom & @CR & $iCode & @CR & $iIDFrom & @CR & '7')
EndSwitch
EndSwitch
; Return 'GUI_RUNDEFMSG'
Return
EndFunc