Попробовал сделать так :
но сообщение (в данном случае WM_NOTIFY) приходит только один раз и , соответственно, пользоваться этим невозможно.
Код:
#Include <Constants.au3>
#Include <GUIConstantsEx.au3>
#Include <WindowsConstants.au3>
#Include <WinAPI.au3>
$Form = GUICreate("Test", 262, 256, -1, -1)
$TreeView = GUICtrlCreateTreeView(4, 4, 253, 245)
$TV_1 = GUICtrlCreateTreeViewItem("Item 1", $TreeView)
$TV_1_1 = GUICtrlCreateTreeViewItem("Item 1.1", $TV_1)
$TV_1_2 = GUICtrlCreateTreeViewItem("Item 1.2", $TV_1)
$TV_2 = GUICtrlCreateTreeViewItem("Item 2", $TreeView)
$TV_2_1 = GUICtrlCreateTreeViewItem("Item 2.1", $TV_2)
$TV_2_2 = GUICtrlCreateTreeViewItem("Item 2.2", $TV_2)
GUISetState(@SW_SHOW)
$hCtrl = GUICtrlGetHandle($TreeView)
$iDllCallback = DllCallbackRegister('_Proc', "ptr", "hwnd;uint;long;ptr")
OnAutoItExitRegister('_Exit')
$hPrevProc = _WinAPI_SetWindowLong($hCtrl, $GWL_WNDPROC, DllCallbackGetPtr($iDllCallback))
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _Proc($hWnd, $iMsg, $wParam, $lParam)
If $iMsg = $WM_NOTIFY Then
ConsoleWrite('--- WM_NOTIFY' & @CRLF)
EndIf
Return _WinAPI_CallWindowProc($hPrevProc, $hWnd, $iMsg, $wParam, $lParam)
EndFunc
Func _Exit()
If HWnd($hCtrl) Then _WinAPI_SetWindowLong($hCtrl, $GWL_WNDPROC, DllCallbackGetPtr($hPrevProc))
DllCallbackFree($iDllCallback)
EndFunc
но сообщение (в данном случае WM_NOTIFY) приходит только один раз и , соответственно, пользоваться этим невозможно.