Hi allz,
ich hab mir das Beispiel zum Befehl _GUICtrlMenu_CreatePopup aus der AutoIt Hilfe ein wenig angepasst, indem ich der GUI noch ein Listview hinzu gefügt habe.
Wenn man mit rechts auf die GUI clickt und einen Eintrag auswählt klappt alles.
Was nicht klappt ist der Rechtsclick auf das Listview. Das Popupmenü wird zwar angezeigt, aber wenn man einen Eintrag des Menüs auswählt, wird so wie es aussieht die Func WM_COMMAND nicht aufgerufen.
Woran liegt das?
Hat jemand eine Idee oder muß man dass komplett anders machen??
Thx
cu Ari
Mein Code:
Spoiler anzeigen
#include <GuiMenu.au3>
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>
Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Global Enum $idOpen = 1000, $idSave, $idInfo
Local $List
_Main()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Main()
Local $hGUI
; Create GUI
$hGUI = GUICreate("Menu", 400, 300)
$List = GUICtrlCreateListView("1|2", 30, 20, 341, 241)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 50)
GUICtrlCreateListViewItem("1|1.1", $List)
GUICtrlCreateListViewItem("2|2.1", $List)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]; Register message handlers
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
; Handle WM_COMMAND messages
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Switch $iwParam
Case $idOpen
_WinAPI_ShowMsg ("Open")
Case $idSave
_WinAPI_ShowMsg ("Save")
Case $idInfo
_WinAPI_ShowMsg ("Info")
EndSwitch
EndFunc ;==>WM_COMMAND
; Handle WM_CONTEXTMENU messages
Func WM_CONTEXTMENU($hWnd, $iMsg, $iwParam, $ilParam)
Local $hMenu;, $hWndFrom = $iwParam
;If GUICtrlGetHandle($List) = $hWndFrom Then
$hMenu = _GUICtrlMenu_CreatePopup ()
_GUICtrlMenu_InsertMenuItem ($hMenu, 0, "Open", $idOpen)
_GUICtrlMenu_InsertMenuItem ($hMenu, 1, "Save", $idSave)
_GUICtrlMenu_InsertMenuItem ($hMenu, 3, "", 0)
_GUICtrlMenu_InsertMenuItem ($hMenu, 3, "Info", $idInfo)
_GUICtrlMenu_TrackPopupMenu ($hMenu, $iwParam)
_GUICtrlMenu_DestroyMenu ($hMenu)
Return True
;EndIf
EndFunc ;==>WM_CONTEXTMENU