指定された位置にショートカットメニューを表示します。
#Include <GuiMenu.au3>
_GUICtrlMenu_TrackPopupMenu($hMenu, $hWnd[, $iX = -1[, $iY = -1[, $iAlignX = 1[, $iAlignY = 1[, $iNotify = 0[, $iButtons = 0]]]]]])
パラメータ
$hMenu | 表示されるショートカットメニューのハンドル |
$hWnd | ショートカットメニューを保持するウィンドウのハンドル |
$iX | [オプション]スクリーン座標でのショートカットメニューの水平座標を指定します。-1の場合、現在のマウス位置が使用されます。 |
$iY | [オプション]スクリーン座標でのショートカットメニューの垂直座標を指定します。-1の場合、現在のマウス位置が使用されます。 |
$iAlignX | [オプション]メニューの水平方向の配置方法を指定します: 0 - $iXに対して水平方向に中央揃えにします 1 - $iXに対してメニューの左側を揃えるように配置します 2 - $iXに対してメニューの右側を揃えるように配置します |
$iAlignY | [オプション]メニューの垂直方向の配置方法を指定します: 0 - $iYに対してメニューの下部を揃えるように配置します 1 - $iYに対してメニューの上部を揃えるように配置します 2 - $iYに対して垂直方向に中央揃えにします |
$iNotify | [オプション]親ウィンドウに選択結果を知らせるかどうかを決定します: 1 - 通知メッセージを送信しません 2 - ユーザー選択されたメニューアイテムの識別子を返します |
$iButtons | [オプション]ショートカットメニューが追尾するマウスボタン: 0 - ユーザーは左マウスボタンでのみアイテムを選択できます 1 - ユーザーは右左両方のマウスボタンでアイテムを選択できます |
返し値
成功: | $iNotifyが2に設定された場合、返し値はユーザーが選択したアイテムのメニューアイテム識別子です。ユーザーがアイテム選択をせずにメニューをキャンセルした場合、エラーが起きた場合は返し値はゼロです。$iNotifyが2以外の場合、返し値は1です。 |
失敗: | 0 |
注意
なし。
関連
こちらも参照
MSDNライブラリでTrackPopupMenuを検索して下さい。
例
#include <GuiMenu.au3>
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global Enum $idOpen = 1000, $idSave, $idInfo
_Main()
Func _Main()
Local $hGUI
; GUIを作成
$hGUI = GUICreate("Menu", 400, 300)
GUISetState()
; メッセージハンドラーを登録
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")
; ユーザーが終了するまでループ
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
; WM_COMMANDメッセージを処理
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
; WM_CONTEXTMENUメッセージを処理
Func WM_CONTEXTMENU($hWnd, $iMsg, $iwParam, $ilParam)
Local $hMenu
$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
EndFunc ;==>WM_CONTEXTMENU