Hi,
mit WM_NOTIFY kann ja abgefragt werden, wenn sich die markierten Elemente durch einen Mausklick ändern.
Geht dies auch wenn dies z. B. durch die Tastatur (Pfeiltasten) passiert ![]()
Spoiler anzeigen
#region ;************ Includes ************
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#endregion ;************ Includes ************
$Form1 = GUICreate("Test", 400, 300)
$ListView = GUICtrlCreateListView("Test|Test", 20, 20, 300, 200, $LVS_SHOWSELALWAYS)
For $i = 1 To 10
GUICtrlCreateListViewItem("|" & $i & "| aaaaaaaaaaaaaa|" & Random(0, 10, 1), $ListView)
Next
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
If $wParam = $ListView Then
Switch $code
Case $NM_CLICK ;klick
ConsoleWrite(_GUICtrlListView_GetSelectedIndices($ListView) & @CRLF)
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY