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:
Costruire l'oggetto
CMFCCaptionBar
. In genere, si aggiunge la barra della didascalia a una classe finestra cornice.Chiamare il metodo CMFCCaptionBar::Create per creare il controllo barra della didascalia e collegarlo all'oggetto
CMFCCaptionBar
.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à
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