次の方法で共有


CMenu::SetMenuItemBitmaps

メニュー項目で指定されたビットマップを関連付けます。

BOOL SetMenuItemBitmaps(
   UINT nPosition,
   UINT nFlags,
   const CBitmap* pBmpUnchecked,
   const CBitmap* pBmpChecked 
);

パラメーター

  • nPosition
    変更するメニュー項目を指定します。nFlags のパラメーターが nPosition を次のように解釈するために使用できます:

    nFlags

    nPosition の解釈

    MF_BYCOMMAND

    パラメーターが既存のメニュー項目のコマンド ID を与えることを指定します。これは MF_BYCOMMANDMF_BYPOSITION 設定が既定値です。

    MF_BYPOSITION

    パラメーターが既存のメニュー項目の位置を与えることを指定します。最初の項目が 0 の位置にあります。

  • nFlags
    nPosition がどのように解釈されるかを指定します。

  • pBmpUnchecked
    ビットマップをチェック アウトされていないメニュー項目に使用するを指定します。

  • pBmpChecked
    ビットマップをチェックするメニュー項目に使用するを指定します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

メニュー項目がオンまたはオフかどうかは、Windows メニュー項目の横に適切なビットマップを表示します。

pBmpUnchecked がまたは pBmpCheckednull場合は、Windows 対応する属性のメニュー項目の横には何も表示されません。パラメーターが両方とも nullの場合、Windows は、項目がオフになっている項目で使用し、チェック マークを削除するときの既定のチェック マークが。

メニューが破棄されると、これらのビットマップは破棄されません; アプリケーションは、それらを破棄する必要があります。

Windows GetMenuCheckMarkDimensions 関数は、メニュー項目に使用する既定のチェック マークの大きさを取得します。アプリケーションはこの関数に指定されたビットマップの適切なサイズを決定するためにこれらの値を使用します。サイズを取得し、そのビットマップを作成し、を設定します。

使用例

// The code fragment below is from CMainFrame::OnCreate and shows 
// how to associate bitmaps with the "Bitmap" menu item. 
// Whether the "Bitmap" menu item is checked or unchecked, Windows 
// displays the appropriate bitmap next to the menu item. Both 
// IDB_CHECKBITMAP and IDB_UNCHECKBITMAP bitmaps are loaded 
// in OnCreate() and destroyed in the destructor of CMainFrame class. 
// CMainFrame is a CFrameWnd-derived class.

// Load bitmaps from resource. Both m_CheckBitmap and m_UnCheckBitmap
// are member variables of CMainFrame class of type CBitmap.
ASSERT(m_CheckBitmap.LoadBitmap(IDB_CHECKBITMAP));
ASSERT(m_UnCheckBitmap.LoadBitmap(IDB_UNCHECKBITMAP));

// Associate bitmaps with the "Bitmap" menu item. 
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(4);
ASSERT(submenu->SetMenuItemBitmaps(ID_MENU_BITMAP, MF_BYCOMMAND, 
   &m_CheckBitmap, &m_UnCheckBitmap));
// This code fragment is taken from CMainFrame::~CMainFrame

// Destroy the bitmap objects if they are loaded successfully 
// in OnCreate().
if (m_CheckBitmap.m_hObject)
   m_CheckBitmap.DeleteObject();

if (m_UnCheckBitmap.m_hObject)
   m_UnCheckBitmap.DeleteObject();

必要条件

ヘッダー: afxwin.h

参照

関連項目

CMenu クラス

階層図

GetMenuCheckMarkDimensions

SetMenuItemBitmaps