Привет.
Как мне привязывать контекстное меню к определённым элементам, а не ко всему окну?
Т.е, меню GUICtrlCreateListView и меню статических элементов должны различаться.
Как мне привязывать контекстное меню к определённым элементам, а не ко всему окну?
Т.е, меню GUICtrlCreateListView и меню статических элементов должны различаться.
Код:
#include <GuiMenu.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
Global $idOpen = 1000, $idSave, $idInfo
_MList()
Func _MList()
Global $hList = GUICreate('111')
$iButton = GUICtrlCreateListView("QQQQQQQQQQQQ", 0, 0, 200, 327)
global $mlist = GUICtrlGetHandle($iButton)
GUISetState()
GUIRegisterMsg(0x0111, "WM_COMMAND")
GUIRegisterMsg(0x007B, "WM_CONTEXTMENU_111")
GUIRegisterMsg(0x007B, "WM_CONTEXTMENU_222")
Do
Until GUIGetMsg() = -3
GUIDelete()
EndFunc
Func WM_CONTEXTMENU_111($hList, $iMsg, $wParam, $lParam)
#forceref $hWnd, $iMsg, $lParam
Local $hMenu
$hMenu = _GUICtrlMenu_CreatePopup ()
_GUICtrlMenu_InsertMenuItem ($hMenu, 0, "1111111", $idOpen)
_GUICtrlMenu_InsertMenuItem ($hMenu, 1, "2222222", $idSave)
_GUICtrlMenu_InsertMenuItem ($hMenu, 3, "", 0)
_GUICtrlMenu_InsertMenuItem ($hMenu, 3, "3333333", $idInfo)
_GUICtrlMenu_TrackPopupMenu ($hMenu, $mlist)
; MsgBox(0, 'Menu' & '', @CRLF & $wParam & @CRLF & $lParam)
_GUICtrlMenu_DestroyMenu ($hMenu)
Return True
EndFunc
Func WM_CONTEXTMENU_222($mlist, $iMsg)
#forceref $hWnd, $iMsg, $lParam
Local $hMenu
$hMenu = _GUICtrlMenu_CreatePopup(32)
_GUICtrlMenu_InsertMenuItem ($hMenu, 3, "AAAAAAA", $idInfo)
_GUICtrlMenu_TrackPopupMenu ($hMenu, $mlist)
; MsgBox(0, 'Menu' & '', @CRLF & $wParam & @CRLF & $lParam)
_GUICtrlMenu_DestroyMenu ($hMenu)
Return True
EndFunc
Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
; MsgBox(0, 'Command' & '',@CRLF & $wParam & @CRLF & $lParam)
#forceref $hWnd, $iMsg, $lParam
Switch $wParam
Case $idOpen
MsgBox(0, '' & '', 'Открыть')
Case $idSave
MsgBox(0, '' & '', 'Сохранить')
Case $idInfo
MsgBox(0, '' & '', 'Информация')
EndSwitch
EndFunc