Partager via


CMFCCaptionBar, classe

Un CMFCCaptionBar objet est une barre de contrôle qui peut afficher trois éléments : un bouton, une étiquette de texte et une bitmap. Elle ne peut afficher qu'un élément de chaque type à la fois. Vous pouvez aligner chaque élément sur le bord gauche ou droit du contrôle ou le centrer. Vous pouvez également appliquer un style 2D ou 3D aux bordures supérieure et inférieure de la barre de légende.

Syntaxe

class CMFCCaptionBar : public CPane

Membres

Méthodes publiques

Nom Description
CMFCCaptionBar ::Create Crée le contrôle de barre de légende et l’attache à l’objet CMFCCaptionBar .
CMFCCaptionBar ::D oesAllowDynInsertBefore Indique si un autre volet peut être inséré dynamiquement entre la barre de légende et son cadre parent. (Remplacements CBasePane ::D oesAllowDynInsertBefore.)
CMFCCaptionBar ::EnableButton Active ou désactive le bouton dans la barre de légende.
CMFCCaptionBar ::GetAlignment Retourne l’alignement de l’élément spécifié.
CMFCCaptionBar ::GetBorderSize Retourne la taille de bordure de la barre de légende.
CMFCCaptionBar ::GetButtonRect Récupère le rectangle englobant du bouton dans la barre de légende.
CMFCCaptionBar ::GetMargin Retourne la distance entre le bord des éléments de la barre de légende et le bord du contrôle de barre de légende.
CMFCCaptionBar ::IsMessageBarMode Spécifie si la barre de légende est en mode barre de messages.
CMFCCaptionBar ::RemoveBitmap Supprime l’image bitmap de la barre de légende.
CMFCCaptionBar ::RemoveButton Supprime le bouton de la barre de légende.
CMFCCaptionBar ::RemoveIcon Supprime l’icône de la barre de légende.
CMFCCaptionBar ::RemoveText Supprime l’étiquette de texte de la barre de légende.
CMFCCaptionBar ::SetBitmap Définit l’image bitmap de la barre de légende.
CMFCCaptionBar ::SetBorderSize Définit la taille de bordure de la barre de légende.
CMFCCaptionBar ::SetButton Définit le bouton de la barre de légende.
CMFCCaptionBar ::SetButtonPressed Spécifie si le bouton reste enfoncé.
CMFCCaptionBar ::SetButtonToolTip Définit l’info-bulle du bouton.
CMFCCaptionBar ::SetFlatBorder Définit le style de bordure de la barre de légende.
CMFCCaptionBar ::SetIcon Définit l’icône d’une barre de légende.
CMFCCaptionBar ::SetImageToolTip Définit l’info-bulle de l’image pour la barre de légende.
CMFCCaptionBar ::SetMargin Définit la distance entre le bord de l’élément de barre de légende et le bord du contrôle de barre de légende.
CMFCCaptionBar ::SetText Définit l’étiquette de texte de la barre de légende.

Méthodes protégées

Nom Description
CMFCCaptionBar ::OnDrawBackground Appelé par l’infrastructure pour remplir l’arrière-plan de la barre de légende.
CMFCCaptionBar ::OnDrawBorder Appelé par l’infrastructure pour dessiner la bordure de la barre de légende.
CMFCCaptionBar ::OnDrawButton Appelé par l’infrastructure pour dessiner le bouton de barre de légende.
CMFCCaptionBar ::OnDrawImage Appelé par l’infrastructure pour dessiner l’image de barre de légende.
CMFCCaptionBar ::OnDrawText Appelé par l’infrastructure pour dessiner le texte de la barre de légende.

Données membres

Nom Description
CMFCCaptionBar ::m_clrBarBackground Couleur d’arrière-plan de la barre de légende.
CMFCCaptionBar ::m_clrBarBorder Couleur de la bordure de la barre de légende.
CMFCCaptionBar ::m_clrBarText Couleur du texte de la barre de légende.

Notes

Pour créer une barre de légende, procédez comme suit :

  1. Construisez l’objet CMFCCaptionBar . En règle générale, vous devez ajouter la barre de légende à une classe de fenêtre frame.

  2. Appelez la méthode CMFCCaptionBar ::Create pour créer le contrôle de barre de légende et l’attacher à l’objet CMFCCaptionBar .

  3. Appelez CMFCCaptionBar ::SetButton, CMFCCaptionBar ::SetText, CMFCCaptionBar ::SetIcon et CMFCCaptionBar ::SetBitmap pour définir les éléments de barre de légende.

Lorsque vous définissez l’élément de bouton, vous devez affecter un ID de commande au bouton. Lorsque l’utilisateur clique sur le bouton, la barre de légende achemine les messages WM_COMMAND qui ont cet ID vers la fenêtre de cadre parent.

La barre de légende peut également fonctionner en mode barre de messages, qui émule la barre de messages qui apparaît dans les applications Microsoft Office 2007. En mode barre de messages, la barre de légende affiche une bitmap, un message et un bouton (qui ouvre généralement une boîte de dialogue).) Vous pouvez affecter une info-bulle à la bitmap.

Pour activer le mode barre de messages, appelez CMFCCaptionBar ::Create et définissez le quatrième paramètre (bIsMessageBarMode) sur TRUE.

Exemple

L’exemple suivant montre comment utiliser différentes méthodes de la classe CMFCCaptionBar . L’exemple montre comment créer le contrôle de barre de légende, définir une bordure 3D de la barre de légende, définir la distance, en pixels, entre le bord des éléments de barre de légende et le bord du contrôle de barre de légende, définir le bouton de la barre de légende, définir l’info-bulle du bouton, définir l’étiquette de texte de la barre de légende, définissez l’image bitmap de la barre de légende et définissez l’info-bulle de l’image dans la barre de légende. Cet extrait de code fait partie de l’exemple de démonstration 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;
}

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCCaptionBar

Spécifications

En-tête : afxcaptionbar.h

CMFCCaptionBar ::Create

Crée le contrôle de barre de légende et l’attache à l’objet CMFCCaptionBar .

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

Paramètres

dwStyle
Combinaison OR logique des styles de barre de légende.

pParentWnd
Fenêtre parente du contrôle de barre de légende.

Uid
ID du contrôle de barre de légende.

nHeight
Hauteur, en pixels, du contrôle de barre de légende. S’il s’agit de -1, la hauteur est calculée en fonction de la hauteur de l’icône, du texte et du bouton affiché par le contrôle de barre de légende.

bIsMessageBarMode
TRUE si la barre de légende est en mode barre de messages ; FALSE dans le cas contraire.

Valeur de retour

TRUE si le contrôle de barre de légende est créé avec succès ; FALSE dans le cas contraire.

Notes

Vous construisez un CMFCCaptionBar objet en deux étapes. Tout d’abord, vous appelez le constructeur, puis vous appelez la Create méthode, qui crée le contrôle Windows et l’attache à l’objet CMFCCaptionBar .

CMFCCaptionBar ::D oesAllowDynInsertBefore

Indique si un autre volet peut être inséré dynamiquement entre la barre de légende et son cadre parent.

virtual BOOL DoesAllowDynInsertBefore() const;

Valeur de retour

Retourne FALSE, sauf substitution.

Notes

CMFCCaptionBar ::EnableButton

Active ou désactive le bouton dans la barre de légende.

void EnableButton(BOOL bEnable=TRUE);

Paramètres

bEnable
[in] TRUE pour activer le bouton, FALSE pour désactiver le bouton.

CMFCCaptionBar ::GetAlignment

Retourne l’alignement de l’élément spécifié.

BarElementAlignment GetAlignment(BarElement elem);

Paramètres

Elem
[in] Élément de barre de légende pour lequel récupérer l’alignement.

Valeur de retour

Alignement d’un élément, tel qu’un bouton, une bitmap, un texte ou une icône.

Notes

L’alignement de l’élément peut être l’une des valeurs suivantes :

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar ::GetBorderSize

Retourne la taille de bordure de la barre de légende.

int GetBorderSize() const;

Valeur de retour

Taille, en pixels, de la bordure.

CMFCCaptionBar ::GetButtonRect

Récupère le rectangle englobant du bouton dans la barre de légende.

CRect GetButtonRect() const;

Valeur de retour

Objet CRect qui contient les coordonnées du rectangle englobant du bouton dans la barre de légende.

CMFCCaptionBar ::GetMargin

Retourne la distance entre le bord des éléments de la barre de légende et le bord du contrôle de barre de légende.

int GetMargin() const;

Valeur de retour

Distance, en pixels, entre le bord des éléments de barre de légende et le bord du contrôle de barre de légende.

CMFCCaptionBar ::IsMessageBarMode

Spécifie si la barre de légende est en mode barre de messages.

BOOL IsMessageBarMode() const;

Valeur de retour

TRUE si la barre de légende est en mode barre de messages ; FALSE dans le cas contraire.

Notes

En mode barre de messages, la barre de légende affiche une image avec une info-bulle, un texte de message et un bouton.

CMFCCaptionBar ::m_clrBarBackground

Couleur d’arrière-plan de la barre de légende.

COLORREF m_clrBarBackground

CMFCCaptionBar ::m_clrBarBorder

Couleur de la bordure de la barre de légende.

COLORREF m_clrBarBorder

CMFCCaptionBar ::m_clrBarText

Couleur du texte de la barre de légende.

COLORREF m_clrBarText

CMFCCaptionBar ::OnDrawBackground

Appelé par l’infrastructure pour remplir l’arrière-plan de la barre de légende.

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

Paramètres

pDC
[in] Pointeur vers le contexte de l’appareil de la barre de légende.

rect
[in] Rectangle englobant à remplir.

Notes

La OnDrawBackground méthode est appelée lorsque l’arrière-plan de la barre de légende est sur le point d’être rempli. L’implémentation par défaut remplit l’arrière-plan à l’aide de la couleur CMFCCaptionBar ::m_clrBarBackground .

Remplacez cette méthode dans une CMFCCaptionBar classe dérivée pour personnaliser l’apparence de la barre de légende.

CMFCCaptionBar ::OnDrawBorder

Appelé par l’infrastructure pour dessiner la bordure de la barre de légende.

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

Paramètres

pDC
[in] Contexte d’appareil utilisé pour afficher les bordures.

rect
[in] Rectangle englobant.

Notes

Par défaut, les bordures ont le style plat.

Remplacez cette méthode dans une CMFCCaptionBar classe dérivée pour personnaliser l’apparence des bordures de la barre de légende.

CMFCCaptionBar ::OnDrawButton

Appelé par l’infrastructure pour dessiner le bouton de barre de légende.

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

Paramètres

pDC
[in] Pointeur vers un contexte d’appareil utilisé pour afficher le bouton.

rect
[in] Rectangle englobant du bouton.

strButton
[in] Étiquette de texte du bouton.

bEnabled
[in] TRUE si le bouton est activé ; FALSE dans le cas contraire.

Notes

Remplacez cette méthode dans une CMFCCaptionBar classe dérivée pour personnaliser l’apparence du bouton de la barre de légende.

CMFCCaptionBar ::OnDrawImage

Appelé par l’infrastructure pour dessiner l’image de barre de légende.

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

Paramètres

pDC
[in] Pointeur vers un contexte d’appareil utilisé pour afficher l’image.

rect
[in] Spécifie le rectangle englobant de l’image.

Notes

Remplacez cette méthode dans une CMFCCaptionBar classe dérivée pour personnaliser l’apparence de l’image.

CMFCCaptionBar ::OnDrawText

Appelé par l’infrastructure pour dessiner le texte de la barre de légende.

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

Paramètres

pDC
[in] Pointeur vers un contexte d’appareil utilisé pour afficher le bouton.

rect
[in] Rectangle englobant du texte.

strText
[in] Chaîne de texte à afficher.

Notes

L’implémentation par défaut affiche le texte à l’aide CDC::DrawText de la couleur CMFCCaptionBar ::m_clrBarText .

Remplacez cette méthode dans une CMFCCaptionBar classe dérivée pour personnaliser l’apparence du texte de la barre de légende.

CMFCCaptionBar ::RemoveBitmap

Supprime l’image bitmap de la barre de légende.

void RemoveBitmap();

CMFCCaptionBar ::RemoveButton

Supprime le bouton de la barre de légende.

void RemoveButton();

Notes

La disposition des éléments de barre de légende est ajustée automatiquement.

CMFCCaptionBar ::RemoveIcon

Supprime l’icône de la barre de légende.

void RemoveIcon();

CMFCCaptionBar ::RemoveText

Supprime l’étiquette de texte de la barre de légende.

void RemoveText();

CMFCCaptionBar ::SetBitmap

Définit l’image bitmap de la barre de légende.

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);

Paramètres

hBitmap
[in] Handle de l’image bitmap à définir.

clrTransparent
[in] Valeur RVB qui spécifie la couleur transparente de la bitmap.

bStretch
[in] Si la valeur est TRUE, la bitmap est étirée si elle ne correspond pas au rectangle englobant de l’image. Sinon, la bitmap n’est pas étirée.

bmpAlignment
[in] Alignement de la bitmap.

Notes

Utilisez cette méthode pour définir une bitmap sur une barre de légende.

La bitmap précédente est détruite automatiquement. Si la barre de légende affiche une icône, car vous avez appelé la méthode CMFCCaptionBar ::SetIcon , la bitmap ne s’affiche pas, sauf si vous supprimez l’icône en appelant CMFCCaptionBar ::RemoveIcon.

La bitmap est alignée comme spécifié par le paramètre bmpAlignment . Ce paramètre peut avoir l'une des valeurs BarElementAlignment suivantes :

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar ::SetBorderSize

Définit la taille de bordure de la barre de légende.

void SetBorderSize(int nSize);

Paramètres

nSize
[in] Nouvelle taille, en pixels, de la bordure de la barre de légende.

CMFCCaptionBar ::SetButton

Définit le bouton de la barre de légende.

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

Paramètres

lpszLabel
Étiquette de commande du bouton.

uiCmdUI
ID de commande du bouton.

btnAlignmnet
Alignement du bouton.

bHasDropDownArrow
TRUE si le bouton affiche une flèche déroulante, FALSE sinon.

CMFCCaptionBar ::SetButtonPressed

Spécifie si le bouton reste enfoncé.

void SetButtonPressed(BOOL bPresed=TRUE);

Paramètres

bPresed
TRUE si le bouton conserve son état enfoncé, FALSE sinon.

CMFCCaptionBar ::SetButtonToolTip

Définit l’info-bulle du bouton.

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

Paramètres

lpszToolTip
[in] Légende de l’info-bulle.

lpszDescription
[in] Description de l’info-bulle.

CMFCCaptionBar ::SetFlatBorder

Définit le style de bordure de la barre de légende.

void SetFlatBorder(BOOL bFlat=TRUE);

Paramètres

bFlat
[in] TRUE si la bordure d’une barre de légende est plate. FALSE si la bordure est 3D.

CMFCCaptionBar ::SetIcon

Définit l’icône d’une barre de légende.

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

Paramètres

hIcon
[in] Handle de l’icône à définir.

iconAlignment
[in] Alignement de l’icône.

Notes

Les barres de légende peuvent afficher des icônes ou des bitmaps. Consultez CMFCCaptionBar ::SetBitmap pour savoir comment afficher une bitmap. Si vous définissez une icône et une bitmap, l’icône est toujours affichée. Appelez CMFCCaptionBar ::RemoveIcon pour supprimer une icône de la barre de légende.

L’icône est alignée en fonction du paramètre iconAlignment . Il peut s’agir de l’une des valeurs suivantes BarElementAlignment :

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

CMFCCaptionBar ::SetImageToolTip

Définit l’info-bulle de l’image dans la barre de légende.

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

Paramètres

lpszToolTip
[in] Texte de l’info-bulle.

lpszDescription
[in] Description de l’info-bulle.

CMFCCaptionBar ::SetMargin

Définit la distance entre le bord de l’élément de barre de légende et le bord du contrôle de barre de légende.

void SetMargin(int nMargin);

Paramètres

nMargin
[in] Distance, en pixels, entre le bord des éléments de barre de légende et le bord du contrôle de barre de légende.

CMFCCaptionBar ::SetText

Définit l’étiquette de texte de la barre de légende.

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

Paramètres

strText
[in] Chaîne de texte à définir.

textAlignment
[in] Alignement du texte.

Notes

L’étiquette de texte est alignée comme spécifié par le paramètre textAlignment . Il peut s’agir de l’une des valeurs suivantes BarElementAlignment :

  • ALIGN_INVALID

  • ALIGN_LEFT

  • ALIGN_RIGHT

  • ALIGN_CENTER

Voir aussi

Graphique hiérarchique
Classes