メニューの作成 <TOP>
CreateMenu メニューを作成
CreatePopupMenu ドロップダウンメニュー、サブメニュー、ショートカットメニューのいずれかを作成
AppendMenu
メニューの末尾に新しいメニュー項目を追加( InsertMenuItemを推奨)
SetMenu
指定されたウィンドウに、新しいメニューを割り当てる
'================================================================ '= メニューの作成 '= (CreateMenu.bas) '================================================================ #include "Windows.bi" ' メニューを作成。メニューは初期状態では空であるが、InsertMenuItem、InsertMenuの各関数を使ってメニュー項目を追加または挿入できる Declare Function Api_CreateMenu& Lib "user32" Alias "CreateMenu" () ' ドロップダウンメニュー、サブメニュー、ショートカットメニューのいずれかを作成 Declare Function Api_CreatePopupMenu& Lib "user32" Alias "CreatePopupMenu" () ' メニューの末尾に新しいメニュー項目を追加( InsertMenuItemを推奨) Declare Function Api_AppendMenu& Lib "user32" Alias "AppendMenuA" (ByVal hMenu&, ByVal wFlags&, ByVal wIDNewItem&, ByVal lpNewItem As Any) ' 指定されたウィンドウに、新しいメニューを割り当てる Declare Function Api_SetMenu& Lib "user32" Alias "SetMenu" (ByVal hWnd&, ByVal hMenu&) #define MF_STRING &H0 '文字列 #define MF_POPUP &H10 'ドロップダウンメニュー・サブメニューを開くアイテムを追加 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var hMenu As Long Var hSubMenu As Long Var hLevel2L1SubMenu As Long Var hLevel2L2SubMenu As Long Var MenuID As Long Var hID As Long Var Ret As Long hMenu = Api_CreateMenu() hSubMenu = Api_CreatePopupMenu() hLevel2L1SubMenu = Api_CreatePopupMenu() hLevel2L2SubMenu = Api_CreatePopupMenu() Ret = Api_AppendMenu(hLevel2L1SubMenu, MF_STRING, 211, "List1_1") Ret = Api_AppendMenu(hLevel2L1SubMenu, MF_STRING, 212, "List1_2") Ret = Api_AppendMenu(hLevel2L2SubMenu, MF_STRING, 221, "List2_1") Ret = Api_AppendMenu(hLevel2L2SubMenu, MF_STRING, 222, "List2_2") Ret = Api_AppendMenu(hSubMenu, MF_POPUP, hLevel2L1SubMenu, "List1") Ret = Api_AppendMenu(hSubMenu, MF_POPUP, hLevel2L2SubMenu, "List2") Ret = Api_AppendMenu(hMenu, MF_POPUP, hSubMenu, "MainMenu") MenuID = Api_SetMenu(GethWnd, hMenu) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End