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 CMFCMenuButton
oggetto , è 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à
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.