Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Работа с контекстным меню

Ответить
Настройки темы
[решено] Работа с контекстным меню

Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Привет.
Как мне привязывать контекстное меню к определённым элементам, а не ко всему окну?

Т.е, меню 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

Отправлено: 12:21, 11-09-2017

 

Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вопрос снят.

Отправлено: 15:33, 11-09-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Creat0R

Must AutoIt


Moderator


Сообщения: 3000
Благодарности: 986

Профиль | Сайт | Отправить PM | Цитировать


Цитата Атос:
Вопрос снят. »
Если снят, то будь добр выложить решение. Может другим пригодится.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 22:32, 11-09-2017 | #3


Новый участник


Сообщения: 36
Благодарности: 0

Профиль | Отправить PM | Цитировать


Совместными усилиями в этом участвовали товарищи из следующего массива:
Global Array[3] = [Alofa, joiner, ra4o]

Код: Выделить весь код
#include <GuiMenu.au3>
Global Enum $id_111 = 1000, $id_222, $id_333, $id_444
Global $hGUI = GUICreate('111')
Global $hListViewMenu = GUICtrlCreateListView("QQQQQQ", 0, 0, 200, 327)
Global $LBL = GUICtrlCreateLabel('', 205, 10, 200, 20)
Global $hListViewMenu1 = GUICtrlGetHandle($hListViewMenu)
GUISetState()
GUIRegisterMsg(0x0111, "WM_COMMAND")
GUIRegisterMsg(0x007B, "WM_CONTEXTMENU")
Do
Until GUIGetMsg() = -3

Func WM_CONTEXTMENU($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam
    Switch $wParam
        Case $hGUI
            _WinMenu($hWnd)
        Case $hListViewMenu1
            _ItemMenu($hWnd)
    EndSwitch
    Return True
EndFunc   ;==>WM_CONTEXTMENU

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam
    Switch _WinAPI_LoWord($wParam)
        Case $id_111
            GUICtrlSetData($LBL, 'Выбран первый пункт')
        Case $id_222
            GUICtrlSetData($LBL, 'Выбран второй пункт')
        Case $id_333
            GUICtrlSetData($LBL, 'Выбран третий пункт')
        Case $id_444
            GUICtrlSetData($LBL, 'Выбрано меню окна')
    EndSwitch
EndFunc   ;==>WM_COMMAND

Func _ItemMenu($hw)
    Local $hMenu
    $hMenu = _GUICtrlMenu_CreatePopup()
    _GUICtrlMenu_InsertMenuItem($hMenu, 0, "Первый пункт", $id_111)
    _GUICtrlMenu_InsertMenuItem($hMenu, 1, "Второй пункт", $id_222)
    _GUICtrlMenu_InsertMenuItem($hMenu, 2, "Третий пункт", $id_333)
    _GUICtrlMenu_TrackPopupMenu($hMenu, $hw)
    _GUICtrlMenu_DestroyMenu($hMenu)
EndFunc   ;==>_ItemMenu

Func _WinMenu($hw)
    Local $hMenu
    $hMenu = _GUICtrlMenu_CreatePopup()
    _GUICtrlMenu_InsertMenuItem($hMenu, 0, "Меню окна", $id_444)
    _GUICtrlMenu_TrackPopupMenu($hMenu, $hw)
    _GUICtrlMenu_DestroyMenu($hMenu)
EndFunc   ;==>_WinMenu

Последний раз редактировалось Атос, 12-09-2017 в 11:56.


Отправлено: 09:29, 12-09-2017 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Работа с контекстным меню

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Разница между runas и контекстным меню fonser Скриптовые языки администрирования Windows 12 10-04-2014 20:39
CMD/BAT - Проблема с контекстным меню LordSP Скриптовые языки администрирования Windows 6 18-10-2012 23:43
Интерфейс - Проблемы с контекстным меню TRUser Microsoft Windows 7 44 22-10-2010 18:18
Интерфейс - Проблема с контекстным меню kiripanda Microsoft Windows 2000/XP 1 24-08-2009 14:59
Проблема с контекстным меню. di2blo Microsoft Windows 2000/XP 2 17-11-2008 09:54




 
Переход