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 :
Construisez l’objet
CMFCCaptionBar
. En règle générale, vous devez ajouter la barre de légende à une classe de fenêtre frame.Appelez la méthode CMFCCaptionBar ::Create pour créer le contrôle de barre de légende et l’attacher à l’objet
CMFCCaptionBar
.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
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