ドロップダウンメニュー、サブメニュー、またはショートカットメニューを作成します
#Include <GuiMenu.au3>
_GUICtrlMenu_CreatePopup([$iStyle = 8])
パラメータ
$iStyle | [オプション]メニューのスタイル。次の値の1つまたは複数です: 1 - マウスがメニューの外側に10秒間出るとメニューは自動的に終了します 2 - チェックマーク用とビットマップ用に同じスペースが確保されます 4 - メニューアイテムをOLEドロップターゲットまたはドラッグソースにします 8 - メニューをモーダレスにします 16 - アイテムの左側にチェックマーク用のスペースを確保しません 32 - 選択がおこなわれた際にメニューのオーナーは$WM_COMMANDメッセージの代わりに$WM_MENUCOMMANDメッセージを受け取ります |
返し値
成功: | 新しく作成されたメニューのハンドル |
失敗: | 0 |
注意
ウィンドウに割り当てられたメニューのリソースは自動的に解放されます。
関連
_GUICtrlMenu_CreateMenu, _GUICtrlMenu_DestroyMenu
こちらも参照
MSDNライブラリでCreatePopupMenuを検索して下さい。
例
#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