指定のメニュー項目にチェックを入れる <TOP>
指定したメニュー項目にチェックを入れます。
GetMenu メニューハンドルを取得
GetSubMenu ポップアップメニューのハンドルを取得
CheckMenuRadioItem 指定範囲のメニュー項目をグループ化
例では、0〜1、3〜6をそれぞれグループ化しています。
'================================================================ '= 指定のメニュー項目にチェックを入れる '= (CheckMenuRadioItem.bas) '================================================================ #include "Windows.bi" ' メニューのハンドルを取得 Declare Function Api_GetMenu& Lib "user32" Alias "GetMenu" (ByVal hWnd&) ' ポップアップメニューのハンドルを取得 Declare Function Api_GetSubMenu& Lib "user32" Alias "GetSubMenu" (ByVal hMenu&, ByVal nPos&) ' 指定の範囲のメニュー項目をグループ化 Declare Function Api_CheckMenuRadioItem& Lib "user32" Alias "CheckMenuRadioItem" (ByVal hMenu&, ByVal idFirst&, ByVal idLast&, ByVal idCheck&, ByVal uFlag&) #define MF_APPEND &H100 ' #define MF_BYCOMMAND &H0 'nPositionはメニュー項目のID #define MF_BYPOSITION &H400 'nPositionはメニュー項目のインデックス #define MF_CHECKED &H8 'メニュー項目にチェックをつける #define MF_DISABLED &H2 'アイテムを選択不可にする #define MF_GRAYED &H1 'グレー表示されて選択できない #define MF_HILITE &H80 'メニューの項目を強調表示 #define MF_MOVE &H1000 ' #define MF_SEPARATOR &H800 'メニュー項目はセパレータ #define MF_STRING &H0 '文字列 #define MF_UNHILITE &H0 'メニューの項目を強調表示しない Var Shared SubMenu As Long '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var Menu As Long Var hWnd Var Ret As Long hWnd = GethWnd Menu = Api_GetMenu(hWnd) SubMenu = Api_GetSubMenu(Menu, 0) End Sub '================================================================ '= '================================================================ Declare Sub mnuItem1_on edecl () Sub mnuItem1_on() Var Ret As Long Ret = Api_CheckMenuRadioItem(SubMenu, 0, 1, 0, MF_BYPOSITION) End Sub '================================================================ '= '================================================================ Declare Sub mnuItem2_on edecl () Sub mnuItem2_on() Var Ret As Long Ret = Api_CheckMenuRadioItem(SubMenu, 0, 1, 1, MF_BYPOSITION) End Sub '================================================================ '= '================================================================ Declare Sub mnuItem3_on edecl () Sub mnuItem3_on() Var Ret As Long Ret = Api_CheckMenuRadioItem(SubMenu, 3, 6, 3, MF_BYPOSITION) End Sub '================================================================ '= '================================================================ Declare Sub mnuItem4_on edecl () Sub mnuItem4_on() Var Ret As Long Ret = Api_CheckMenuRadioItem(SubMenu, 3, 6, 4, MF_BYPOSITION) End Sub '================================================================ '= '================================================================ Declare Sub mnuItem5_on edecl () Sub mnuItem5_on() Var Ret As Long Ret = Api_CheckMenuRadioItem(SubMenu, 3, 6, 5, MF_BYPOSITION) End Sub '================================================================ '= '================================================================ Declare Sub mnuItem6_on edecl () Sub mnuItem6_on() Var Ret As Long Ret = Api_CheckMenuRadioItem(SubMenu, 3, 6, 6, MF_BYPOSITION) End Sub '================================================================ '= '================================================================ Declare Sub mnuExit_on edecl () Sub mnuExit_on() End End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End