Function Reference

_GUICtrlMenu_TrackPopupMenu

指定された位置にショートカットメニューを表示します。

#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