Hi Leute,
ich habe zwei Listviews und will WM_NOTIFY bei beiden hinkriegen. Ich kriege immer diesen error:
Wenn ich versuche noch ein weiteres $wParam anzugeben. Wie der Error sagt, ist die Variable nicht deklariert, stimmt aber nicht, weil ich einfach die Variable von der zweiten ListView angegeben habe. Hier mal ein Beispielskript: Wenn man auf eines der beiden ListView soll eine leere MsgBox erscheinen:
Beispiel (Auch im Anhang)
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Beispiel 2 ListView's", 266, 322)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
$ListView1 = GUICtrlCreateListView("Beispiel", 8, 8, 250, 150, -1, $LVS_EX_FULLROWSELECT) ; Ich habe einfach dieselben Parameter wie bei meinem Main-Skript gewählt, bei einer Spalte bring ja FULLROWSELECT nicht wirklich etwas^^
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 246)
GUICtrlCreateListViewItem("Beim Klick leere MsgBox", -1)
$ListView2 = GUICtrlCreateListView("Beispiel 2", 8, 168, 250, 150, -1, $LVS_EX_FULLROWSELECT) ;ebenso
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 246)
GUICtrlCreateListViewItem("Beim Klick leere MsgBox", -1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(100)
WEnd
Func _Exit()
GUIDelete()
Exit
EndFunc
Func WM_NOTIFY($hWndGUI, $MsgID, $wParam, $lParam)
#forceref $hWndGUI, $MsgID, $wParam
Local $tagNMHDR, $event, $hWndFrom, $code, $aCurrent, $aCurrentName, $sAttrib, $iSize, $aTime, $iVersion, $aAmounts
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Select
Case $wParam = $ListView1
Select
Case $event = $NM_CLICK
If GUICtrlRead($ListView2) <> 0 Then MsgBox(0, "", "")
EndSelect
Case $wParam = $ListView2 ; Gibt Error: Variable used without being declared.
Select
Case $event = $NM_CLICK
If GUICtrlRead($ListView2) <> 0 Then MsgBox(0, "", "")
EndSelect
EndSelect
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>_WM_Notify_Events