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 légende et l’attache à l’objetCMFCCaptionBar.
CMFCCaptionBar ::D oesAllowDynInsertBefore Indique si un autre volet peut être inséré dynamiquement entre la barre légende et son cadre parent. (Remplacements CBasePane ::D oesAllowDynInsertBefore.)
CMFCCaptionBar ::EnableButton Active ou désactive le bouton dans la barre 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 légende.
CMFCCaptionBar ::GetMargin Retourne la distance entre le bord des éléments de barre légende et le bord du contrôle barre légende.
CMFCCaptionBar ::IsMessageBarMode Spécifie si la barre 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 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 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 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 légende.
CMFCCaptionBar ::SetMargin Définit la distance entre le bord de l’élément de barre légende et le bord du contrôle de barre légende.
CMFCCaptionBar ::SetText Définit l’étiquette de texte de la barre 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 légende.
CMFCCaptionBar ::OnDrawButton Appelé par l’infrastructure pour dessiner le bouton de barre légende.
CMFCCaptionBar ::OnDrawImage Appelé par l’infrastructure pour dessiner l’image de barre légende.
CMFCCaptionBar ::OnDrawText Appelé par l’infrastructure pour dessiner le texte de la barre 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 légende et l’attacher à l’objetCMFCCaptionBar.

  3. Appelez CMFCCaptionBar ::SetButton, CMFCCaptionBar ::SetText, CMFCCaptionBar ::SetIcon et CMFCCaptionBar ::SetBitmap pour définir les éléments de barre 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 légende achemine les messages WM_COMMAND qui ont cet ID vers la fenêtre de cadre parent.

La barre légende peut également fonctionner en mode barre de messages, qui émule la barre de messages qui apparaît dans les applications Microsoft Bureau 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 légende, définir la distance, en pixels, entre le bord des éléments de barre légende et le bord du contrôle de barre de légende, définir le bouton de la barre légende, définir l’info-bulle du bouton, définir l’étiquette de texte de l’légende barre, définissez l’image bitmap de la barre légende et définissez l’info-bulle de l’image dans la barre légende. Cet extrait de code fait partie de l’exemple de démonstration MS Bureau 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 : afx légende bar.h

CMFCCaptionBar ::Create

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

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

Paramètres

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

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

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

nHeight
Hauteur, en pixels, du contrôle de barre 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és par le contrôle de barre 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 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 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 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 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 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 barre légende et le bord du contrôle barre légende.

int GetMargin() const;

Valeur de retour

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

CMFCCaptionBar ::IsMessageBarMode

Spécifie si la barre 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 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 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 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 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 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 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 barre légende.

CMFCCaptionBar ::SetButton

Définit le bouton de la barre 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] Info-bulle légende.

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

CMFCCaptionBar ::SetFlatBorder

Définit le style de bordure de la barre 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 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 légende et le bord du contrôle de barre légende.

void SetMargin(int nMargin);

Paramètres

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

CMFCCaptionBar ::SetText

Définit l’étiquette de texte de la barre 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