Condividi tramite


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_BYCOMMANDMF_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

Vedere anche

Riferimenti

Classe CMenu

Grafico delle gerarchie

GetMenuCheckMarkDimensions

SetMenuItemBitmaps