Condividi tramite


Classe CMFCCaptionBar

Un CMFCCaptionBar oggetto è una barra di controllo che può visualizzare tre elementi: un pulsante, un'etichetta di testo e una bitmap. Può essere visualizzato un solo elemento di ogni tipo alla volta. È possibile allineare ciascun elemento ai margini sinistro o destro del controllo o al centro. È inoltre possibile applicare uno stile Flat o 3D ai bordi superiore e inferiore della barra del titolo.

Sintassi

class CMFCCaptionBar : public CPane

Membri

Metodi pubblici

Nome Descrizione
CMFCCaptionBar::Create Crea il controllo barra della didascalia e lo collega all'oggetto CMFCCaptionBar .
CMFCCaptionBar::D oesAllowDynInsertBefore Indica se un altro riquadro può essere inserito in modo dinamico tra la barra della didascalia e il relativo frame padre. (sostituzioni )CBasePane::D oesAllowDynInsertBefore.
CMFCCaptionBar::EnableButton Abilita o disabilita il pulsante sulla barra della didascalia.
CMFCCaptionBar::GetAlignment Restituisce l'allineamento dell'elemento specificato.
CMFCCaptionBar::GetBorderSize Restituisce le dimensioni del bordo della barra della didascalia.
CMFCCaptionBar::GetButtonRect Recupera il rettangolo di delimitazione del pulsante sulla barra della didascalia.
CMFCCaptionBar::GetMargin Restituisce la distanza tra il bordo degli elementi della barra della didascalia e il bordo del controllo barra della didascalia.
CMFCCaptionBar::IsMessageBarMode Specifica se la barra della didascalia è in modalità barra dei messaggi.
CMFCCaptionBar::RemoveBitmap Rimuove l'immagine bitmap dalla barra della didascalia.
CMFCCaptionBar::RemoveButton Rimuove il pulsante dalla barra della didascalia.
CMFCCaptionBar::RemoveIcon Rimuove l'icona dalla barra della didascalia.
CMFCCaptionBar::RemoveText Rimuove l'etichetta di testo dalla barra della didascalia.
CMFCCaptionBar::SetBitmap Imposta l'immagine bitmap per la barra della didascalia.
CMFCCaptionBar::SetBorderSize Imposta le dimensioni del bordo della barra della didascalia.
CMFCCaptionBar::SetButton Imposta il pulsante per la barra della didascalia.
CMFCCaptionBar::SetButtonPressed Specifica se il pulsante rimane premuto.
CMFCCaptionBar::SetButtonToolTip Imposta la descrizione comando per il pulsante.
CMFCCaptionBar::SetFlatBorder Imposta lo stile del bordo della barra della didascalia.
CMFCCaptionBar::SetIcon Imposta l'icona per una barra della didascalia.
CMFCCaptionBar::SetImageToolTip Imposta la descrizione comando per l'immagine per la barra della didascalia.
CMFCCaptionBar::SetMargin Imposta la distanza tra il bordo dell'elemento della barra della didascalia e il bordo del controllo barra della didascalia.
CMFCCaptionBar::SetText Imposta l'etichetta di testo per la barra della didascalia.

Metodi protetti

Nome Descrizione
CMFCCaptionBar::OnDrawBackground Chiamato dal framework per riempire lo sfondo della barra della didascalia.
CMFCCaptionBar::OnDrawBorder Chiamato dal framework per disegnare il bordo della barra della didascalia.
CMFCCaptionBar::OnDrawButton Chiamato dal framework per disegnare il pulsante della barra della didascalia.
CMFCCaptionBar::OnDrawImage Chiamato dal framework per disegnare l'immagine della barra della didascalia.
CMFCCaptionBar::OnDrawText Chiamato dal framework per disegnare il testo della barra della didascalia.

Membri dei dati

Nome Descrizione
CMFCCaptionBar::m_clrBarBackground Colore di sfondo della barra della didascalia.
CMFCCaptionBar::m_clrBarBorder Colore del bordo della barra della didascalia.
CMFCCaptionBar::m_clrBarText Colore del testo della barra della didascalia.

Osservazioni:

Per creare una barra della didascalia, seguire questa procedura:

  1. Costruire l'oggetto CMFCCaptionBar. In genere, si aggiunge la barra della didascalia a una classe finestra cornice.

  2. Chiamare il metodo CMFCCaptionBar::Create per creare il controllo barra della didascalia e collegarlo all'oggetto CMFCCaptionBar .

  3. Chiamare CMFCCaptionBar::SetButton, CMFCCaptionBar::SetText, CMFCCaptionBar::SetIcon e CMFCCaptionBar::SetBitmap per impostare gli elementi della barra della didascalia.

Quando si imposta l'elemento pulsante, è necessario assegnare un ID comando al pulsante. Quando l'utente fa clic sul pulsante, la barra della didascalia indirizza i messaggi WM_COMMAND con questo ID alla finestra cornice padre.

La barra dei sottotitoli può funzionare anche in modalità barra dei messaggi, che emula la barra dei messaggi visualizzata nelle applicazioni di Microsoft Office 2007. In modalità barra dei messaggi, la barra della didascalia visualizza una bitmap, un messaggio e un pulsante (che in genere apre una finestra di dialogo). È possibile assegnare una descrizione comando alla bitmap.

Per abilitare la modalità barra dei messaggi, chiamare CMFCCaptionBar::Create e impostare il quarto parametro (bIsMessageBarMode) su TRUE.

Esempio

L'esempio seguente illustra come usare i vari metodi nella classe CMFCCaptionBar . L'esempio mostra come creare il controllo barra della didascalia, impostare un bordo 3D della barra della didascalia, impostare la distanza, in pixel, tra il bordo degli elementi della barra della didascalia e il bordo del controllo barra della didascalia, impostare il pulsante per la barra della didascalia, impostare la descrizione comando per il pulsante, impostare l'etichetta di testo per la barra della didascalia, impostare l'immagine bitmap per la barra della didascalia e impostare la descrizione comando per l'immagine nella barra della didascalia. Questo frammento di codice fa parte dell'esempio demo di MS Office 2007.

CMFCCaptionBar m_wndMessageBar;
BOOL CMainFrame::CreateMessageBar()
{
   // The this pointer points to a CMainFrame class which extends the CFrameWndEx class.
   if (!m_wndMessageBar.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, ID_VIEW_MESSAGEBAR, -1, TRUE))
   {
      TRACE0("Failed to create caption bar\n");
      return FALSE;
   }

   m_wndMessageBar.SetFlatBorder(FALSE);
   m_wndMessageBar.SetMargin(10);
   m_wndMessageBar.SetButton(_T("Options..."), ID_TOOLS_OPTIONS, CMFCCaptionBar::ALIGN_LEFT, FALSE);
   m_wndMessageBar.SetButtonToolTip(_T("Click here to see more options"));

   m_wndMessageBar.SetText(_T("Welcome to the MFC MSOffice2007 demonstration!"), CMFCCaptionBar::ALIGN_LEFT);

   m_wndMessageBar.SetBitmap(IDB_INFO, RGB(255, 255, 255), FALSE, CMFCCaptionBar::ALIGN_LEFT);
   m_wndMessageBar.SetImageToolTip(_T("Important"), _T("Please take a look at MSOffice2007Demo source code to learn how to create advanced user interface in minutes."));

   return TRUE;
}

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCCaptionBar

Requisiti

Intestazione: afxcaptionbar.h

CMFCCaptionBar::Create

Crea il controllo barra della didascalia e lo collega all'oggetto CMFCCaptionBar .

BOOL Create(
    DWORD dwStyle,
    CWnd* pParentWnd,
    UINT uID,
    int nHeight=-1,
    BOOL bIsMessageBarMode=FALSE);

Parametri

dwStyle
Combinazione or logica degli stili della barra della didascalia.

pParentWnd
Finestra padre del controllo barra della didascalia.

Uid
ID del controllo barra della didascalia.

nHeight
Altezza, in pixel, del controllo barra della didascalia. Se è -1, l'altezza viene calcolata in base all'altezza dell'icona, il testo e il pulsante visualizzato dal controllo barra della didascalia.

bIsMessageBarMode
TRUE se la barra della didascalia è in modalità barra dei messaggi; FALSE in caso contrario.

Valore restituito

TRUE se il controllo barra della didascalia viene creato correttamente; FALSE in caso contrario.

Osservazioni:

Si costruisce un CMFCCaptionBar oggetto in due passaggi. Chiamare prima il costruttore e quindi chiamare il Create metodo , che crea il controllo Windows e lo collega all'oggetto CMFCCaptionBar .

CMFCCaptionBar::D oesAllowDynInsertBefore

Indica se un altro riquadro può essere inserito in modo dinamico tra la barra della didascalia e il relativo frame padre.

virtual BOOL DoesAllowDynInsertBefore() const;

Valore restituito

Restituisce FALSE a meno che non venga sottoposto a override.

Osservazioni:

CMFCCaptionBar::EnableButton

Abilita o disabilita il pulsante sulla barra della didascalia.

void EnableButton(BOOL bEnable=TRUE);

Parametri

bEnable
[in] TRUE per abilitare il pulsante, FALSE per disabilitare il pulsante.

CMFCCaptionBar::GetAlignment

Restituisce l'allineamento dell'elemento specificato.

BarElementAlignment GetAlignment(BarElement elem);

Parametri

elem
[in] Elemento della barra della didascalia per il quale recuperare l'allineamento.

Valore restituito

Allineamento di un elemento, ad esempio un pulsante, una bitmap, un testo o un'icona.

Osservazioni:

L'allineamento dell'elemento può essere uno dei valori seguenti:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::GetBorderSize

Restituisce le dimensioni del bordo della barra della didascalia.

int GetBorderSize() const;

Valore restituito

Dimensione, in pixel, del bordo.

CMFCCaptionBar::GetButtonRect

Recupera il rettangolo di delimitazione del pulsante sulla barra della didascalia.

CRect GetButtonRect() const;

Valore restituito

Oggetto CRect che contiene le coordinate del rettangolo di delimitazione del pulsante sulla barra della didascalia.

CMFCCaptionBar::GetMargin

Restituisce la distanza tra il bordo degli elementi della barra della didascalia e il bordo del controllo barra della didascalia.

int GetMargin() const;

Valore restituito

Distanza, in pixel, tra il bordo degli elementi della barra della didascalia e il bordo del controllo barra della didascalia.

CMFCCaptionBar::IsMessageBarMode

Specifica se la barra della didascalia è in modalità barra dei messaggi.

BOOL IsMessageBarMode() const;

Valore restituito

TRUE se la barra della didascalia è in modalità barra dei messaggi; FALSE in caso contrario.

Osservazioni:

Nella modalità barra dei messaggi la barra dei sottotitoli visualizza un'immagine con una descrizione comando, un testo del messaggio e un pulsante.

CMFCCaptionBar::m_clrBarBackground

Colore di sfondo della barra della didascalia.

COLORREF m_clrBarBackground

CMFCCaptionBar::m_clrBarBorder

Colore del bordo della barra della didascalia.

COLORREF m_clrBarBorder

CMFCCaptionBar::m_clrBarText

Colore del testo della barra della didascalia.

COLORREF m_clrBarText

CMFCCaptionBar::OnDrawBackground

Chiamato dal framework per riempire lo sfondo della barra della didascalia.

virtual void OnDrawBackground(
    CDC* pDC,
    CRect rect);

Parametri

pDC
[in] Puntatore al contesto del dispositivo della barra della didascalia.

rect
[in] Rettangolo di delimitazione da riempire.

Osservazioni:

Il OnDrawBackground metodo viene chiamato quando lo sfondo della barra della didascalia sta per essere riempito. L'implementazione predefinita riempie lo sfondo usando il colore CMFCCaptionBar::m_clrBarBackground .

Eseguire l'override di questo metodo in una CMFCCaptionBar classe derivata per personalizzare l'aspetto della barra della didascalia.

CMFCCaptionBar::OnDrawBorder

Chiamato dal framework per disegnare il bordo della barra della didascalia.

virtual void OnDrawBorder(
    CDC* pDC,
    CRect rect);

Parametri

pDC
[in] Contesto di dispositivo utilizzato per visualizzare i bordi.

rect
[in] Rettangolo di delimitazione.

Osservazioni:

Per impostazione predefinita, i bordi hanno lo stile piatto.

Eseguire l'override di questo metodo in una CMFCCaptionBar classe derivata per personalizzare l'aspetto dei bordi della barra della didascalia.

CMFCCaptionBar::OnDrawButton

Chiamato dal framework per disegnare il pulsante della barra della didascalia.

virtual void OnDrawButton(
    CDC* pDC,
    CRect rect,
    const CString& strButton,
    BOOL bEnabled);

Parametri

pDC
[in] Puntatore a un contesto di dispositivo usato per visualizzare il pulsante.

rect
[in] Rettangolo di delimitazione del pulsante.

strButton
[in] Etichetta di testo del pulsante.

bEnabled
[in] TRUE se il pulsante è abilitato; FALSE in caso contrario.

Osservazioni:

Eseguire l'override di questo metodo in una CMFCCaptionBar classe derivata per personalizzare l'aspetto del pulsante della barra della didascalia.

CMFCCaptionBar::OnDrawImage

Chiamato dal framework per disegnare l'immagine della barra della didascalia.

virtual void OnDrawImage(
    CDC* pDC,
    CRect rect);

Parametri

pDC
[in] Puntatore a un contesto di dispositivo usato per visualizzare l'immagine.

rect
[in] Specifica il rettangolo di delimitazione dell'immagine.

Osservazioni:

Eseguire l'override di questo metodo in una CMFCCaptionBar classe derivata per personalizzare l'aspetto dell'immagine.

CMFCCaptionBar::OnDrawText

Chiamato dal framework per disegnare il testo della barra della didascalia.

virtual void OnDrawText(
    CDC* pDC,
    CRect rect,
    const CString& strText);

Parametri

pDC
[in] Puntatore a un contesto di dispositivo usato per visualizzare il pulsante.

rect
[in] Rettangolo di delimitazione del testo.

strText
[in] Stringa di testo da visualizzare.

Osservazioni:

L'implementazione predefinita visualizza il testo usando CDC::DrawText e il colore CMFCCaptionBar::m_clrBarText .

Eseguire l'override di questo metodo in una CMFCCaptionBar classe derivata per personalizzare l'aspetto del testo della barra della didascalia.

CMFCCaptionBar::RemoveBitmap

Rimuove l'immagine bitmap dalla barra della didascalia.

void RemoveBitmap();

CMFCCaptionBar::RemoveButton

Rimuove il pulsante dalla barra della didascalia.

void RemoveButton();

Osservazioni:

Il layout degli elementi della barra della didascalia viene regolato automaticamente.

CMFCCaptionBar::RemoveIcon

Rimuove l'icona dalla barra della didascalia.

void RemoveIcon();

CMFCCaptionBar::RemoveText

Rimuove l'etichetta di testo dalla barra della didascalia.

void RemoveText();

CMFCCaptionBar::SetBitmap

Imposta l'immagine bitmap per la barra della didascalia.

void SetBitmap(
    HBITMAP hBitmap,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

void SetBitmap(
    UINT uiBmpResID,
    COLORREF clrTransparent,
    BOOL bStretch=FALSE,
    BarElementAlignment bmpAlignment=ALIGN_RIGHT);

Parametri

hBitmap
[in] Handle della bitmap da impostare.

clrTransparent
[in] Valore RGB che specifica il colore trasparente della bitmap.

bStretch
[in] Se TRUE, la bitmap viene estesa se non si adatta al rettangolo di delimitazione dell'immagine. In caso contrario, la bitmap non è estesa.

bmpAlignment
[in] Allineamento della bitmap.

Osservazioni:

Usare questo metodo per impostare una bitmap su una barra della didascalia.

La bitmap precedente viene eliminata automaticamente. Se la barra della didascalia visualizza un'icona perché è stato chiamato il metodo CMFCCaptionBar::SetIcon, la bitmap non verrà visualizzata a meno che non si rimuovono l'icona chiamando CMFCCaptionBar::RemoveIcon.

La bitmap è allineata come specificato dal parametro bmpAlignment . Questo parametro può avere uno dei valori BarElementAlignment seguenti:

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetBorderSize

Imposta le dimensioni del bordo della barra della didascalia.

void SetBorderSize(int nSize);

Parametri

nSize
[in] Nuova dimensione, in pixel, del bordo della barra della didascalia.

CMFCCaptionBar::SetButton

Imposta il pulsante per la barra della didascalia.

void SetButton(
    LPCTSTR lpszLabel,
    UINT uiCmdUI,
    BarElementAlignment btnAlignmnet=ALIGN_LEFT,
    BOOL bHasDropDownArrow=TRUE);

Parametri

lpszLabel
Etichetta del comando del pulsante.

uiCmdUI
ID comando del pulsante.

btnAlignmnet
Allineamento del pulsante.

bHasDropDownArrow
TRUE se il pulsante visualizza una freccia a discesa, FALSE in caso contrario.

CMFCCaptionBar::SetButtonPressed

Specifica se il pulsante rimane premuto.

void SetButtonPressed(BOOL bPresed=TRUE);

Parametri

bPresed
TRUE se il pulsante mantiene lo stato premuto, FALSE in caso contrario.

CMFCCaptionBar::SetButtonToolTip

Imposta la descrizione comando per il pulsante.

void SetButtonToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

Parametri

lpszToolTip
[in] Didascalia della descrizione comando.

lpszDescription
[in] Descrizione della descrizione comando.

CMFCCaptionBar::SetFlatBorder

Imposta lo stile del bordo della barra della didascalia.

void SetFlatBorder(BOOL bFlat=TRUE);

Parametri

bFlat
[in] TRUE se il bordo di una barra didascalia è piatto. FALSE se il bordo è 3D.

CMFCCaptionBar::SetIcon

Imposta l'icona per una barra della didascalia.

void SetIcon(
    HICON hIcon,
    BarElementAlignment iconAlignment=ALIGN_RIGHT);

Parametri

hIcon
[in] Handle dell'icona da impostare.

iconAlignment
[in] Allineamento dell'icona.

Osservazioni:

Le barre della didascalia possono visualizzare icone o bitmap. Per informazioni su come visualizzare una bitmap, vedere CMFCCaptionBar::SetBitmap . Se si impostano sia un'icona che una bitmap, l'icona viene sempre visualizzata. Chiamare CMFCCaptionBar::RemoveIcon per rimuovere un'icona dalla barra della didascalia.

L'icona è allineata in base al parametro iconAlignment . Può essere uno dei valori seguenti BarElementAlignment :

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar::SetImageToolTip

Imposta la descrizione comando per l'immagine nella barra della didascalia.

void SetImageToolTip(
    LPCTSTR lpszToolTip,
    LPCTSTR lpszDescription=NULL);

Parametri

lpszToolTip
[in] Testo della descrizione comando.

lpszDescription
[in] Descrizione della descrizione comando.

CMFCCaptionBar::SetMargin

Imposta la distanza tra il bordo dell'elemento della barra della didascalia e il bordo del controllo barra della didascalia.

void SetMargin(int nMargin);

Parametri

nMargin
[in] Distanza, in pixel, tra il bordo degli elementi della barra della didascalia e il bordo del controllo barra della didascalia.

CMFCCaptionBar::SetText

Imposta l'etichetta di testo per la barra della didascalia.

void SetText(
    const CString& strText,
    BarElementAlignment textAlignment=ALIGN_RIGHT);

Parametri

strText
[in] Stringa di testo da impostare.

textAlignment
[in] Allineamento del testo.

Osservazioni:

L'etichetta di testo è allineata come specificato dal parametro textAlignment . Può essere uno dei valori seguenti BarElementAlignment :

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

Vedi anche

Grafico della gerarchia
Classi