CMenu::SetMenuItemBitmaps
将指定的位图与菜单项。
BOOL SetMenuItemBitmaps(
UINT nPosition,
UINT nFlags,
const CBitmap* pBmpUnchecked,
const CBitmap* pBmpChecked
);
参数
nPosition
指定要更改的菜单项。 nFlags 参数可用于以下方式解释 nPosition :nFlags
nPosition的说明
MF_BYCOMMAND
指定参数为现有菜单项的命令ID。 如果 MF_BYCOMMAND 和 MF_BYPOSITION 未设置,这是默认值。
MF_BYPOSITION
指定参数为现有菜单项的位置。 第一项在位置0。
nFlags
指定 nPosition 如何解释。pBmpUnchecked
指定位图用于未检查的菜单项使用。pBmpChecked
位图指定为签出的菜单项使用。
返回值
非零,如果函数运行成功;否则为0。
备注
菜单项是否中或取消选中,在Windows菜单项旁显示相应的位图。
如果 pBmpUnchecked 或 pBmpChecked 是 NULL,则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();
要求
Header: afxwin.h