Condividi tramite


Classe CMFCDropDownToolbarButton

Tipo di pulsante della barra degli strumenti che, quando viene selezionato, si comporta come un pulsante normale. Tuttavia, apre una barra degli strumenti a discesa ( CLASSE CMFCDropDownToolBar se l'utente preme e tiene premuto il pulsante della barra degli strumenti.

Sintassi

class CMFCDropDownToolbarButton : public CMFCToolBarButton

Membri

Costruttori pubblici

Nome Descrizione
CMFCDropDownToolbarButton::CMFCDropDownToolbarButton Costruisce un oggetto CMFCDropDownToolbarButton.
CMFCDropDownToolbarButton::~CMFCDropDownToolbarButton Distruttore.

Metodi pubblici

Nome Descrizione
CMFCDropDownToolbarButton::CopyFrom Copia le proprietà di un altro pulsante della barra degli strumenti nel pulsante corrente. (sostituzioni )CMFCToolBarButton::CopyFrom.
CMFCDropDownToolbarButton::CreateObject Usato dal framework per creare un'istanza dinamica di questo tipo di classe.
CMFCDropDownToolbarButton::D ropDownToolbar Apre una barra degli strumenti a discesa.
CMFCDropDownToolbarButton::ExportToMenuButton Copia il testo dal pulsante della barra degli strumenti a un menu. (sostituzioni )CMFCToolBarButton::ExportToMenuButton.
CMFCDropDownToolbarButton::GetDropDownToolBar Recupera la barra degli strumenti a discesa associata al pulsante.
CMFCDropDownToolbarButton::GetThisClass Usato dal framework per ottenere un puntatore all'oggetto CRuntimeClass associato a questo tipo di classe.
CMFCDropDownToolbarButton::IsDropDown Determina se la barra degli strumenti a discesa è attualmente aperta.
CMFCDropDownToolbarButton::IsExtraSize Determina se il pulsante può essere visualizzato con un bordo esteso. (sostituzioni )CMFCToolBarButton::IsExtraSize.
CMFCDropDownToolbarButton::OnCalculateSize Chiamato dal framework per calcolare le dimensioni del pulsante per il contesto di dispositivo e lo stato di ancoraggio specificati. (sostituzioni )CMFCToolBarButton::OnCalculateSize.
CMFCDropDownToolbarButton::OnCancelMode Chiamato dal framework per gestire il messaggio di WM_CANCELMODE . Esegue l'override di CMCToolBarButton::OnCancelMode.
CMFCDropDownToolbarButton::OnChangeParentWnd Chiamato dal framework quando il pulsante viene inserito in una nuova barra degli strumenti. (sostituzioni )CMFCToolBarButton::OnChangeParentWnd.
CMFCDropDownToolbarButton::OnClick Chiamato dal framework quando l'utente fa clic sul pulsante del mouse. (sostituzioni )CMFCToolBarButton::OnClick.
CMFCDropDownToolbarButton::OnClickUp Chiamato dal framework quando l'utente rilascia il pulsante del mouse. (sostituzioni )CMFCToolBarButton::OnClickUp.
CMFCDropDownToolbarButton::OnContextHelp Chiamato dal framework quando la barra degli strumenti padre gestisce un messaggio di WM_HELPHITTEST. (sostituzioni )CMFCToolBarButton::OnContextHelp.
CMFCDropDownToolbarButton::OnCustomizeMenu Modifica il menu fornito quando l'applicazione visualizza un menu di scelta rapida sulla barra degli strumenti padre. (sostituzioni )CMFCToolBarButton::OnCustomizeMenu.
CMFCDropDownToolbarButton::OnDraw Chiamato dal framework per disegnare il pulsante usando gli stili e le opzioni specificati. (sostituzioni )CMFCToolBarButton::OnDraw.
CMFCDropDownToolbarButton::OnDrawOnCustomizeList Chiamato dal framework per disegnare il pulsante nel riquadro Comandi della finestra di dialogo Personalizza . (sostituzioni )CMFCToolBarButton::OnDrawOnCustomizeList.
CMFCDropDownToolbarButton::Serialize Legge questo oggetto da un archivio o lo scrive in un archivio. (sostituzioni )CMFCToolBarButton::Serialize.
CMFCDropDownToolbarButton::SetDefaultCommand Imposta il comando predefinito utilizzato dal framework quando un utente fa clic sul pulsante.

Membri dei dati

Nome Descrizione
CMFCDropDownToolbarButton::m_uiShowBarDelay Specifica il periodo di tempo in cui un utente deve tenere premuto il pulsante del mouse prima che venga visualizzata la barra degli strumenti a discesa.

Osservazioni:

Un CMFCDropDownToolBarButton oggetto differisce da un pulsante ordinario in quanto ha una piccola freccia nell'angolo inferiore destro del pulsante. Dopo che l'utente seleziona un pulsante dalla barra degli strumenti a discesa, il framework visualizza l'icona sul pulsante della barra degli strumenti di primo livello (il pulsante con la piccola freccia nell'angolo in basso a destra).

Per informazioni su come implementare una barra degli strumenti a discesa, vedere Classe CMFCDropDownToolBar.

L'oggetto CMFCDropDownToolBarButton può essere esportato in un oggetto Classe CMFCToolBarMenuButton e visualizzato come pulsante di menu con un menu a comparsa.

Gerarchia di ereditarietà

CObject

CMFCToolBarButton

CMFCDropDownToolbarButton

Requisiti

Intestazione: afxdropdowntoolbar.h

CMFCDropDownToolbarButton::CopyFrom

Copia le proprietà di un altro pulsante della barra degli strumenti nel pulsante corrente.

virtual void CopyFrom(const CMFCToolBarButton& src);

Parametri

src
[in] Riferimento al pulsante di origine da cui copiare.

Osservazioni:

Chiamare questo metodo per copiare un altro pulsante della barra degli strumenti in questo pulsante della barra degli strumenti. src deve essere di tipo CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton::CMFCDropDownToolbarButton

Costruisce un oggetto CMFCDropDownToolbarButton.

CMFCDropDownToolbarButton();

CMFCDropDownToolbarButton(
    LPCTSTR lpszName,
    CMFCDropDownToolBar* pToolBar);

Parametri

lpszName
[in] Testo predefinito del pulsante.

pToolBar
[in] Puntatore all'oggetto CMFCDropDownToolBar visualizzato quando l'utente preme il pulsante.

Osservazioni:

Il secondo overload del costruttore copia nel pulsante a discesa il primo pulsante dalla barra degli strumenti specificato da pToolBar .

In genere, un pulsante della barra degli strumenti a discesa usa il testo del pulsante usato più di recente nella barra degli strumenti specificato da pToolBar . Usa il testo specificato da lpszName quando il pulsante viene convertito in un pulsante di menu o visualizzato nella scheda Comandi della finestra di dialogo Personalizza . Per altre informazioni sulla finestra di dialogo Personalizza , vedere Classe CMFCToolBarsCustomizeDialog.

Esempio

Nell'esempio seguente viene illustrato come costruire un oggetto della CMFCDropDownToolbarButton classe . Questo frammento di codice fa parte dell'esempio demo di Visual Studio.

// Add dropdown resources button
// CMFCToolBarsCustomizeDialog* pDlgCust
// CMFCDropDownToolBar m_wndToolbarResource
pDlgCust->AddButton(_T("Build"), CMFCDropDownToolbarButton(_T("Add Resource"), &m_wndToolbarResource));

Apre una barra degli strumenti a discesa.

BOOL DropDownToolbar(CWnd* pWnd);

Parametri

pWnd
[in] Finestra padre del frame a discesa o NULL per utilizzare la finestra padre del pulsante della barra degli strumenti a discesa.

Valore restituito

Diverso da zero se il metodo ha esito positivo; in caso contrario, 0.

Osservazioni:

Il metodo CMFCDropDownToolbarButton::OnClick chiama questo metodo per aprire la barra degli strumenti a discesa quando l'utente preme e tiene premuto il pulsante della barra degli strumenti.

Questi metodi creano la barra degli strumenti a discesa usando il metodo CMFCDropDownFrame::Create . Se la barra degli strumenti padre è ancorata verticalmente, questo metodo posiziona la barra degli strumenti a discesa sul lato sinistro o destro della barra degli strumenti padre, a seconda dell'adattamento. In caso contrario, questo metodo posiziona la barra degli strumenti a discesa sotto la barra degli strumenti padre.

Questo metodo ha esito negativo se pWnd è NULL e il pulsante della barra degli strumenti a discesa non ha una finestra padre.

CMFCDropDownToolbarButton::ExportToMenuButton

Copia il testo dal pulsante della barra degli strumenti a un menu.

virtual BOOL ExportToMenuButton(CMFCToolBarMenuButton& menuButton) const;

Parametri

menuButton
[in] Riferimento al pulsante del menu di destinazione.

Valore restituito

Diverso da zero se il metodo ha esito positivo; in caso contrario, zero.

Osservazioni:

Questo metodo chiama l'implementazione della classe base ( CMFCToolBarButton::ExportToMenuButton) e quindi aggiunge al pulsante di menu di destinazione un menu a comparsa che contiene ogni voce di menu della barra degli strumenti in questo pulsante. Questo metodo non aggiunge menu secondari al menu a comparsa.

Questo metodo ha esito negativo se la barra degli strumenti padre, m_pToolBar, è NULL o l'implementazione della classe di base restituisce FALSE.

CMFCDropDownToolbarButton::GetDropDownToolBar

Recupera la barra degli strumenti a discesa associata al pulsante.

CMFCToolBar* GetDropDownToolBar() const;

Valore restituito

Barra degli strumenti a discesa associata al pulsante.

Osservazioni:

Questo metodo restituisce il m_pToolBar membro dati.

CMFCDropDownToolbarButton::IsDropDown

Determina se la barra degli strumenti a discesa è attualmente aperta.

BOOL IsDropDown() const;

Valore restituito

Diverso da zero se la barra degli strumenti a discesa è attualmente aperta; in caso contrario, 0.

Osservazioni:

Il framework apre la barra degli strumenti a discesa usando il metodo CMFCDropDownToolbarButton::D ropDownToolbar . Il framework chiude la barra degli strumenti a discesa quando l'utente preme il pulsante sinistro del mouse nell'area non client della barra degli strumenti a discesa.

CMFCDropDownToolbarButton::IsExtraSize

Determina se il pulsante può essere visualizzato con un bordo esteso.

virtual BOOL IsExtraSize() const;

Valore restituito

Diverso da zero se il pulsante della barra degli strumenti può essere visualizzato con un bordo esteso; in caso contrario, 0.

Osservazioni:

Per altre informazioni sui bordi estesi, vedere CMFCToolBarButton::IsExtraSize.

CMFCDropDownToolbarButton::m_uiShowBarDelay

Specifica il periodo di tempo in cui un utente deve tenere premuto il pulsante del mouse prima che venga visualizzata la barra degli strumenti a discesa.

static UINT m_uiShowBarDelay;

Osservazioni:

Il tempo di ritardo viene misurato in millisecondi. Il valore predefinito è 500. È possibile impostare un altro ritardo modificando il valore di questo membro dati condiviso.

CMFCDropDownToolbarButton::OnCalculateSize

Chiamato dal framework per calcolare le dimensioni del pulsante per il contesto di dispositivo e lo stato di ancoraggio specificati.

virtual SIZE OnCalculateSize(
    CDC* pDC,
    const CSize& sizeDefault,
    BOOL bHorz);

Parametri

pDC
[in] Contesto del dispositivo che visualizza il pulsante.

sizeDefault
[in] Dimensioni predefinite del pulsante.

bHorz
[in] Stato di ancoraggio della barra degli strumenti padre. Questo parametro è TRUE se la barra degli strumenti è ancorata orizzontalmente o mobile oppure FALSE se la barra degli strumenti è ancorata verticalmente.

Valore restituito

Struttura SIZE che contiene le dimensioni del pulsante, in pixel.

Osservazioni:

Questo metodo estende l'implementazione della classe di base ( CMFCToolBarButton::OnCalculateSize) aggiungendo la larghezza della freccia a discesa alla dimensione orizzontale delle dimensioni del pulsante.

CMFCDropDownToolbarButton::OnChangeParentWnd

Chiamato dal framework quando il pulsante viene inserito in una nuova barra degli strumenti.

virtual void OnChangeParentWnd(CWnd* pWndParent);

Parametri

pWndParent
[in] Nuova finestra padre.

Osservazioni:

Questo metodo esegue l'override dell'implementazione della classe di base ( CMFCToolBarButton::OnChangeParentWnd) cancellando l'etichetta di testo ( CMFCToolBarButton::m_strText) e impostando i membri dati CMFCToolBarButton::m_bText e CMFCToolBarButton::m_bUserButton su FALSE.

CMFCDropDownToolbarButton::OnClick

Chiamato dal framework quando l'utente fa clic sul pulsante del mouse.

virtual BOOL OnClick(
    CWnd* pWnd,
    BOOL bDelay = TRUE);

Parametri

pWnd
[in] Finestra padre del pulsante della barra degli strumenti.

bDelay
[in] TRUE se il messaggio deve essere gestito con un ritardo.

Valore restituito

Diverso da zero se il pulsante elabora il messaggio di clic; in caso contrario, 0.

Osservazioni:

Questo metodo estende l'implementazione della classe base CMFCToolBarButton ::OnClick aggiornando lo stato della barra degli strumenti a discesa.

Quando un utente fa clic sul pulsante della barra degli strumenti, questo metodo crea un timer che attende il periodo di tempo specificato dal membro dati CMFCDropDownToolbarButton::m_uiShowBarDelay e quindi apre la barra degli strumenti a discesa usando il metodo CMFCDropDownToolbarButton::D ropDownToolbarbar . Questo metodo chiude la barra degli strumenti a discesa la seconda volta che l'utente fa clic sul pulsante della barra degli strumenti.

CMFCDropDownToolbarButton::OnClickUp

Chiamato dal framework quando l'utente rilascia il pulsante del mouse.

virtual BOOL OnClickUp();

Valore restituito

Diverso da zero se il pulsante elabora il messaggio di clic; in caso contrario, 0.

Osservazioni:

Questo metodo estende l'implementazione della classe base CMFCToolBarButton ::OnClickUp aggiornando lo stato della barra degli strumenti a discesa.

Questo metodo arresta il timer della barra degli strumenti a discesa se è attivo. Chiude la barra degli strumenti a discesa se è aperta.

Per altre informazioni sulla barra degli strumenti a discesa e sul timer della barra degli strumenti a discesa, vedere CMFCDropDownToolbarButton::OnClick.

CMFCDropDownToolbarButton::OnContextHelp

Chiamato dal framework quando la barra degli strumenti padre gestisce un messaggio di WM_HELPHITTEST.

virtual BOOL OnContextHelp(CWnd* pWnd);

Parametri

pWnd
[in] Finestra padre del pulsante della barra degli strumenti.

Valore restituito

Diverso da zero se il pulsante elabora il messaggio della Guida; in caso contrario, 0.

Osservazioni:

Questo metodo estende l'implementazione della classe base ( CMFCToolBarButton::OnContextHelp) chiamando il metodo CMFCDropDownToolbarButton::OnClick con bDelay impostato su FALSE. Questo metodo restituisce il valore restituito da CMFCDropDownToolbarButton::OnClick.

Per altre informazioni sul messaggio di WM_HELPHITTEST, vedere TN028: Supporto della Guida sensibile al contesto.

CMFCDropDownToolbarButton::OnCustomizeMenu

Modifica il menu fornito quando l'applicazione visualizza un menu di scelta rapida sulla barra degli strumenti padre.

virtual BOOL OnCustomizeMenu(CMenu* pMenu);

Parametri

pMenu
[in] Menu da personalizzare.

Valore restituito

Questo metodo restituisce TRUE.

Osservazioni:

Questo metodo estende l'implementazione della classe base ( CMFCToolBarButton::OnCustomizeMenu) disabilitando le voci di menu seguenti:

  • Copia immagine pulsante

  • Aspetto pulsante

  • Image

  • Text

  • Immagine e testo

Eseguire l'override di questo metodo per modificare il menu di scelta rapida visualizzato dal framework in modalità di personalizzazione.

CMFCDropDownToolbarButton::OnDraw

Chiamato dal framework per disegnare il pulsante usando gli stili e le opzioni specificati.

virtual void OnDraw(
    CDC* pDC,
    const CRect& rect,
    CMFCToolBarImages* pImages,
    BOOL bHorz = TRUE,
    BOOL bCustomizeMode = FALSE,
    BOOL bHighlight = FALSE,
    BOOL bDrawBorder = TRUE,
    BOOL bGrayDisabledButtons = TRUE);

Parametri

pDC
[in] Contesto del dispositivo che visualizza il pulsante.

rect
[in] Rettangolo di delimitazione del pulsante.

pImages
[in] Raccolta di immagini della barra degli strumenti associate al pulsante.

bHorz
[in] Stato di ancoraggio della barra degli strumenti padre. Questo parametro è TRUE quando il pulsante è ancorato orizzontalmente e FALSE quando il pulsante è ancorato verticalmente.

bCustomizeMode
[in] Specifica se la barra degli strumenti è in modalità di personalizzazione. Questo parametro è TRUE quando la barra degli strumenti è in modalità di personalizzazione e FALSE quando la barra degli strumenti non è in modalità di personalizzazione.

bHighlight
[in] Specifica se il pulsante è evidenziato. Questo parametro è TRUE quando il pulsante è evidenziato e FALSE quando il pulsante non è evidenziato.

bDrawBorder
[in] Specifica se il pulsante deve visualizzare il bordo. Questo parametro è TRUE quando il pulsante deve visualizzare il bordo e FALSE quando il pulsante non deve visualizzare il bordo.

bGrayDisabledButtons
[in] Specifica se oscurare i pulsanti disabilitati o utilizzare la raccolta di immagini disabilitate. Questo parametro è TRUE quando i pulsanti disabilitati devono essere ombreggiati e FALSE quando questo metodo deve usare la raccolta di immagini disabilitate.

Osservazioni:

Eseguire l'override di questo metodo per personalizzare il disegno del pulsante della barra degli strumenti.

CMFCDropDownToolbarButton::OnDrawOnCustomizeList

Chiamato dal framework per disegnare il pulsante nel riquadro Comandi della finestra di dialogo Personalizza .

virtual int OnDrawOnCustomizeList(
    CDC* pDC,
    const CRect& rect,
    BOOL bSelected);

Parametri

pDC
[in] Contesto del dispositivo che visualizza il pulsante.

rect
[in] Rettangolo di delimitazione del pulsante.

bSelected
[in] Indica se il pulsante è selezionato. Se questo parametro è TRUE, viene selezionato il pulsante . Se questo parametro è FALSE, il pulsante non è selezionato.

Valore restituito

Larghezza, in pixel, del pulsante nel contesto di dispositivo specificato.

Osservazioni:

Questo metodo viene chiamato dalla finestra di dialogo di personalizzazione ( scheda Comandi ) quando è necessario che il pulsante venga visualizzato nella casella di riepilogo di disegno proprietario.

Questo metodo estende l'implementazione della classe di base ( CMFCToolBarButton::OnDrawOnCustomizeList) modificando l'etichetta di testo del pulsante con il nome del pulsante ( ovvero, al valore del parametro lpszName passato al costruttore).

CMFCDropDownToolbarButton::Serialize

Legge questo oggetto da un archivio o lo scrive in un archivio.

virtual void Serialize(CArchive& ar);

Parametri

Ar
[in] Oggetto CArchive da cui o da serializzare.

Osservazioni:

Questo metodo estende l'implementazione della classe base ( CMFCToolBarButton::Serialize) serializzando l'ID risorsa della barra degli strumenti padre. Quando l'archivio viene caricato ( CArchive::IsLoading restituisce un valore diverso da zero), questo metodo imposta il m_pToolBar membro dati sulla barra degli strumenti contenente l'ID risorsa serializzato.

CMFCDropDownToolbarButton::SetDefaultCommand

Imposta il comando predefinito utilizzato dal framework quando un utente fa clic sul pulsante.

void SetDefaultCommand(UINT uiCmd);

Parametri

uiCmd
[in] ID del comando predefinito.

Osservazioni:

Chiamare questo metodo per specificare un comando predefinito eseguito dal framework quando l'utente fa clic sul pulsante. Un elemento con l'ID comando specificato da uiCmd deve trovarsi nella barra degli strumenti a discesa padre.

Vedi anche

Grafico della gerarchia
Classi
Classe CMFCDropDownToolBar
Classe CMFCToolBar
Classe CMFCToolBarMenuButton
Procedura dettagliata: inserimento di controlli nelle barre degli strumenti