MSDNExample// The code fragment below shows how to associate bitmaps with the // "Test" menu item. Whether the "Test" 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.int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; // 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 "Test" menu item. CMenu* mmenu = GetMenu(); CMenu* submenu = mmenu->GetSubMenu(3); ASSERT(submenu->SetMenuItemBitmaps(ID_HELP_TEST, MF_BYCOMMAND, &m_CheckBitmap, &m_UnCheckBitmap)); // ... }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(); }
// "Test" menu item. Whether the "Test" 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.int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1; // 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 "Test" menu item.
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(3);
ASSERT(submenu->SetMenuItemBitmaps(ID_HELP_TEST, MF_BYCOMMAND,
&m_CheckBitmap, &m_UnCheckBitmap)); // ...
}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();
}
cj60
bcgcontrolbar
都是很好的DD