Функция WM_CONTEXTMENU

 ↑  ←  Описание функции


WM_CONTEXTMENU

Сообщение выполняется при вызове контекстного меню правой кнопкой мыши.

Параметры

Указанные параметры передаются системой.
$wParam Дескриптор окна или элемента, на котором вызвано меню
$lParam Двойное слово содержит:
    младшее слово = X-координата мыши относительно экрана
    старшее слово = Y-координата мыши относительно экрана

Примечания

Смотрите функцию GUIRegisterMsg.

См. также

WM_MENUSELECT

Пример

#include <WindowsConstants.au3>

Global $k = 0
$hGui = GUICreate("Кликни правой кнопкой мыши", 370, 220)
$statist = GUICtrlCreateLabel('Функция WM_CONTEXTMENU выполняется при вызове контекстного меню правой кнопкой мыши.', 5, 5, 360, 68)
GUICtrlSetFont(-1, 12)

$iContextMenu = GUICtrlCreateContextMenu()

$NewSubMenu = GUICtrlCreateMenu("Новое", $iContextMenu)
GUICtrlCreateMenuItem("Текст1", $NewSubMenu)
GUICtrlCreateMenuItem("Текст2", $NewSubMenu)
GUICtrlCreateMenuItem("", $iContextMenu) ; разделитель

GUICtrlCreateMenuItem("Информация", $iContextMenu)

$iButton = GUICtrlCreateButton("OK", 150, 170, 70, 28)
$iButtonContext = GUICtrlCreateContextMenu($iButton)
GUICtrlCreateMenuItem("О кнопке", $iButtonContext)

GUISetState()
GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")

Do
Until GUIGetMsg() = -3

Func WM_CONTEXTMENU($hWnd, $Msg, $wParam, $lParam)
    Local $x, $y
    $x = BitAND($lParam, 0xFFFF) ; _WinAPI_LoWord
    $y = BitShift($lParam, 16) ; _WinAPI_HiWord
    $k += 1
    WinSetTitle($hGui, '', 'Вызов ' & $k)
    GUICtrlSetData($statist, 'Дескриптор= ' & $wParam & @LF & 'x=' & $x & @LF & 'y=' & $y)
EndFunc