Classe CMFCMenuButton

Pulsante che consente di visualizzare un menu di scelta rapida e segnala le selezioni di menu dell'utente.

Sintassi

class CMFCMenuButton : public CMFCButton

Membri

Costruttori pubblici

Nome Descrizione
CMFCMenuButton::CMFCMenuButton Costruisce un oggetto CMFCMenuButton.

Metodi pubblici

Nome Descrizione
CMFCMenuButton::P reTranslateMessage Chiamato dal framework per tradurre i messaggi della finestra prima che vengano inviati. Esegue l'override di CMFCButton::PreTranslateMessage.
CMFCMenuButton::SizeToContent Modifica le dimensioni del pulsante in base al testo e alle dimensioni dell'immagine.

Membri dei dati

Nome Descrizione
CMFCMenuButton::m_bOSMenu Specifica se visualizzare il menu a comparsa di sistema predefinito o usare CContextMenuManager::TrackPopupMenu.
CMFCMenuButton::m_bRightArrow Specifica se il menu a comparsa verrà visualizzato sotto o a destra del pulsante.
CMFCMenuButton::m_bStayPressed Specifica se il pulsante di menu cambia lo stato dopo che l'utente rilascia il pulsante.
CMFCMenuButton::m_hMenu Handle per il menu di Windows associato.
CMFCMenuButton::m_nMenuResult Identificatore che indica l'elemento selezionato dall'utente dal menu a comparsa.
CMFCMenuButton::m_bDefaultClick Consenti l'elaborazione predefinita (sul testo pulsante/immagine).

Osservazioni:

La CMFCMenuButton classe è derivata dalla classe CMFCButton, che a sua volta deriva dalla classe CButton. Pertanto, è possibile usare CMFCMenuButton nel codice nello stesso modo in cui si userebbe CButton.

Quando si crea un CMFCMenuButtonoggetto , è necessario passare un handle al menu a comparsa associato. Chiamare quindi la funzione CMFCMenuButton::SizeToContent. CMFCMenuButton::SizeToContent verifica che le dimensioni del pulsante siano sufficienti per includere una freccia che punta alla posizione in cui verrà visualizzata la finestra popup, ovvero sotto o a destra del pulsante.

Esempio

Nell'esempio seguente viene illustrato come impostare l'handle del menu associato al pulsante, ridimensionare il pulsante in base al testo e alle dimensioni dell'immagine e impostare il menu a comparsa visualizzato dal framework. Questo frammento di codice fa parte dell'esempio New Controls.

CMFCMenuButton m_btnMenu;
// CMenu m_menu
m_btnMenu.m_hMenu = m_menu.GetSubMenu(0)->GetSafeHmenu();
m_btnMenu.SizeToContent();
// set to FALSE so that the framework calls CContextMenuManager::TrackPopupMenu
// to display its menu
m_btnMenu.m_bOSMenu = FALSE;

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CButton

CMFCButton

CMFCMenuButton

Requisiti

Intestazione: afxmenubutton.h

CMFCMenuButton::CMFCMenuButton

Costruisce un nuovo oggetto CMFCMenuButton .

CMFCMenuButton();

CMFCMenuButton::m_bOSMenu

Variabile membro booleana che indica il menu a comparsa visualizzato dal framework.

BOOL m_bOSMenu;

Osservazioni:

Se m_bOSMenu è TRUE, il framework chiama il metodo ereditato TrackPopupMenu per questo oggetto. In caso contrario, il framework chiama CContextMenuManager::TrackPopupMenu.

CMFCMenuButton::m_bRightArrow

Variabile membro booleana che indica la posizione del menu a comparsa.

BOOL m_bRightArrow;

Osservazioni:

Quando l'utente preme il pulsante di menu, l'applicazione visualizza un menu a comparsa. Il framework visualizzerà il menu a comparsa sotto il pulsante o a destra del pulsante. Il pulsante ha anche una piccola freccia che indica dove verrà visualizzato il menu a comparsa. Se m_bRightArrow è TRUE, il framework visualizza il menu a comparsa a destra del pulsante. In caso contrario, viene visualizzato il menu a comparsa sotto il pulsante .

CMFCMenuButton::m_bStayPressed

Variabile membro booleana che indica se il pulsante di menu viene premuto mentre l'utente effettua una selezione dal menu a comparsa.

BOOL m_bStayPressed;

Osservazioni:

Se il m_bStayPressed membro è FALSE, il pulsante di menu non viene premuto quando l'oggetto fa clic sul pulsante. In questo caso, il framework visualizza solo il menu a comparsa.

Se il m_bStayPressed membro è TRUE, il pulsante di menu viene premuto quando l'utente fa clic sul pulsante. Rimane premuto fino a quando l'utente chiude il menu a comparsa, effettuando una selezione o annullando.

CMFCMenuButton::m_hMenu

Handle del menu associato.

HMENU m_hMenu;

Osservazioni:

Il framework visualizza il menu indicato da questa variabile membro quando l'utente fa clic sul pulsante di menu.

CMFCMenuButton::m_nMenuResult

Intero che indica l'elemento selezionato dall'utente dal menu a comparsa.

int m_nMenuResult;

Osservazioni:

Il valore di questa variabile membro è zero se l'utente annulla il menu senza effettuare una selezione o se si verifica un errore.

CMFCMenuButton::m_bDefaultClick

Consente l'elaborazione predefinita di testo o immagini sul pulsante.

BOOL  m_bDefaultClick;

Osservazioni:

Se si imposta m_bDefaultClick su false, il pulsante visualizza il menu quando si fa clic in un punto qualsiasi del pulsante.

CMFCMenuButton::P reTranslateMessage

Chiamato dal framework per tradurre i messaggi della finestra prima che vengano inviati.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parametri

pMsg
[in] Punta a una struttura MSG che contiene il messaggio da elaborare.

Valore restituito

Diverso da zero se il messaggio è stato tradotto e non deve essere inviato; 0 se il messaggio non è stato tradotto e deve essere inviato.

Osservazioni:

CMFCMenuButton::SizeToContent

Modifica le dimensioni del pulsante in base alle dimensioni del testo e all'immagine.

virtual CSize SizeToContent(BOOL bCalcOnly = FALSE);

Parametri

bCalcOnly
[in] Parametro booleano che indica se questo metodo ridimensiona il pulsante .

Valore restituito

Oggetto CSize che specifica le nuove dimensioni per il pulsante.

Osservazioni:

Se si chiama questa funzione e bCalcOnly è TRUE, SizeToContent verrà calcolata solo la nuova dimensione del pulsante.

Le nuove dimensioni del pulsante vengono calcolate per adattare il testo, l'immagine e la freccia del pulsante. Il framework aggiunge anche margini predefiniti di 10 pixel per il bordo orizzontale e 5 pixel per il bordo verticale.

Vedi anche

Grafico della gerarchia
Classi
Classe CMFCButton