CMenu::SetMenuItemBitmaps
Associa le bitmap specificata con una voce di menu.
BOOL SetMenuItemBitmaps(
UINT nPosition,
UINT nFlags,
const CBitmap* pBmpUnchecked,
const CBitmap* pBmpChecked
);
Parametri
nPosition
Specifica la voce di menu da modificare. Il parametro nFlags può essere utilizzato per interpretare nPosition nei modi seguenti:nFlags
Interpretazione di nPosition
MF_BYCOMMAND
Specifica che il parametro fornisce l'id di comando voce di menu esistente. Questa è l'impostazione predefinita se non MF_BYCOMMAND né MF_BYPOSITION è impostato su.
MF_BYPOSITION
Specifica che il parametro fornisce la posizione della voce di menu esistente. Il primo elemento è la posizione 0.
nFlags
Specifica come nPosition viene interpretato.pBmpUnchecked
Specifica la bitmap da utilizzare per le voci di menu che non vengono archiviate.pBmpChecked
Specifica la bitmap da utilizzare per le voci di menu che vengono archiviate.
Valore restituito
Diverso da zero se la funzione ha esito positivo; in caso contrario 0.
Note
Se la voce di menu viene selezionata o deselezionata, Windows visualizzare la bitmap appropriata accanto alla voce di menu.
Se pBmpUnchecked o pBmpChecked è NULL, quindi Windows non visualizzerà niente accanto alla voce di menu per l'attributo corrispondente. Se entrambi i parametri sono NULL, Windows utilizza il segno di spunta predefinito quando l'elemento viene archiviato e rimuove il segno di spunta quando l'elemento è deselezionata.
Quando il menu viene eliminato, le bitmap non vengono eliminati; l'applicazione deve distruggerle.
La funzione di Windows GetMenuCheckMarkDimensions recupera le dimensioni del segno di spunta predefinito utilizzato per le voci di menu. L'applicazione utilizza questi valori per determinare le dimensioni corrette per le bitmap fornite con questa funzione. Ottenere la dimensione, creare le bitmap e quindi impostarle.
Esempio
// 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();
Requisiti
Header: afxwin.h