メニューの作成          <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