メニューのチェックマークをビットマップで <TOP>
メニューのチェックマークを、作成したBitmapに変更してみます。
LoadImage 画像ファイルの読み込み
GetMenu メニューのハンドルを取得
GetSubMenu ポップアップメニューのハンドルを取得
SetMenuItemBitmaps メニューのチェックマークをビットマップに変更
'================================================================ '= メニューのチェックマークをビットマップで '= (SetMenuItemBitmaps.bas) '================================================================ #include "Windows.bi" #define MF_BYPOSITION &H400 'nPositionはメニュー項目のインデックス #define IMAGE_BITMAP 0 'ビットマップ #define LR_LOADFROMFILE &H10 '外部ファイルからロードする ' 画像ファイルの読み込み Declare Function Api_LoadImage& Lib "user32" Alias "LoadImageA" (ByVal hInst&, ByVal lpszName$, ByVal uType&, ByVal cxDesired&, ByVal cyDesired&, ByVal fuLoad&) ' メニューのハンドルを取得 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_SetMenuItemBitmaps& Lib "user32" Alias "SetMenuItemBitmaps" (ByVal hMenu&, ByVal nPosition&, ByVal wFlags&, ByVal hBitmapUnchecked&, ByVal hBitmapChecked&) '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var hMenu As Long Var hSubMenu As Long Var hBmp(5) As Long Var Ret As Long 'メニューのハンドルを取得 hMenu = Api_GetMenu(GethWnd) 'メニューをチェック If hMenu = 0 Then A% = MessageBox(GetWindowText, "このフォームに「Menu」はありません!", 0, 2) Exit Sub End If 'サブメニューのハンドルを取得 hSubMenu = Api_GetSubMenu(hMenu, 0) 'サブメニューをチェック If hSubMenu = 0 Then A% = MessageBox(GetWindowText, "このフォームに「SubMenu」はありません!", 0, 2) Exit Sub End If For i% = 0 To 5 'Bitmapの読み込み hBmp(i%) = Api_LoadImage(0, "Menu" & Trim$(Str$(i%)) & ".bmp", IMAGE_BITMAP, 8, 8, LR_LOADFROMFILE) 'メニューにビットマップを設定 Ret = Api_SetMenuItemBitmaps(hSubMenu, i%, MF_BYPOSITION, hBmp(i%), hBmp(i%)) Next End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End