ちょっとオシャレかも?
Public Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As Long End Type
'メニューのハンドルを得る
'サブメニューのハンドルを取得する
'メニューに関する情報を設定する
Public Const MFT_RADIOCHECK = &H200& Public Const MIIM_TYPE = &H10 '----------------------------------------------------------------------- ' 関数名 : SetCheckMenu ' 機能 : メニューを黒ポチに変更する ' 引数 : (in) Menu … メニュー ' (in) MnuParentPos … 親メニュー位置 ' (in) MnuChildPos … 子メニュー位置 ' 戻り値 : なし '----------------------------------------------------------------------- Public Sub SetCheckMenu(ByVal Menu As Menu, ByVal MnuParentPos As Long, _ ByVal MnuChildPos As Long) Dim udtMnuInfo As MENUITEMINFO Dim hParentMenu As Long Dim hChildMenu As Long '親メニューのハンドルを取得 hParentMenu = GetMenu(Menu.Parent.hwnd) '子メニューのハンドルを取得 '第2引数には親メニューの位置を指定する '左から1番目であったら 0、3番目であったら 2 となる hChildMenu = GetSubMenu(hParentMenu, MnuParentPos) 'MENUITEMINFOの各種設定 With udtMnuInfo .cbSize = Len(udtMnuInfo) .fType = MFT_RADIOCHECK .fMask = MIIM_TYPE .dwTypeData = Menu.Caption & Chr$(0) End With 'メニューのチェックを黒ポチに変える Call SetMenuItemInfo(hChildMenu, MnuChildPos, True, udtMnuInfo) End Sub
1.んじゃ、以下のようにメニューを作成しよう
2.んで、以下をコーディング
|