Hallo zusammen,
ich habe schon einige male mit WM_NOTIFY etc gearbeitet allerdings will mir nun bei einem Script das klicken auf die Treeview nicht wie ich. Ich habe eine Treeview:
A
|-B
|-D
|-C
Ich lasse mir nun in der Console ausgeben was angeklickt ist, und beim ersten Klick egal wohin wird immer A gesagt, folgend hängt der dann einen click zurück. Sprich bei Klick zwei zeigt er dann das was er bei dem ersten Klick zeigen sollte ...
[autoit]Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iCode, $tNMHDR, $i_idOld, $idFrom, $tNMTOOLBAR, $tNMTBHOTITEM, $hSelected
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$idFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hToolbar
Switch $iCode
Case $NM_CLICK
$tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $ilParam)
$i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
Switch $i_idOld
Case $hToolbarButtonConfigWizzard
If $fConfigWizzardActive = True Then
$fConfigWizzardActive = False
_CloseConfigWizzard()
Else
$fConfigWizzardActive = True
_OpenConfigWizzard()
EndIf
EndSwitch
EndSwitch
Case $hTreeview
Switch $iCode
Case $NM_CLICK
If $fConfigWizzardActive = True Then _ConfigWizzard_FillInputs()
Case $NM_RCLICK
If $fConfigWizzardActive = True Then
Local $tPoint = _WinAPI_GetMousePos(True, $hWndFrom)
Local $tHitTest
$tHitTest = _GUICtrlTreeView_HitTestEx($hWndFrom, DllStructGetData($tPoint, 1), DllStructGetData($tPoint, 2))
If BitAND(DllStructGetData($tHitTest, "Flags"), $TVHT_ONITEM) Then
_GUICtrlTreeView_SelectItem($hWndFrom, DllStructGetData($tHitTest, 'Item'))
EndIf
EndIf
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
ich nutze noch ein WM_COMMAND, aber eig. sollte sich das doch nicht in die Quere kommen, oder?
[autoit]
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
Switch $wParam ; See if it comes from one of the inputs
Case $hCWButtonAddProg
_ConfigWizzard_AddProgram()
Case $hCWButtonDelProg
_ConfigWizzard_DelProgram()
Case $hCWButtonEditProg
_ConfigWizzard_EditProgram()
EndSwitch
EndFunc ;==>WM_COMMAND
Hoffe mir kann jemand helfen.
So Far