CStatusBar, classe
Barre de contrôles avec une ligne de volets de sortie de texte ou « indicateurs ».
Syntaxe
class CStatusBar : public CControlBar
Membres
Constructeurs publics
Nom | Description |
---|---|
CStatusBar ::CStatusBar | Construit un objet CStatusBar . |
Méthodes publiques
Nom | Description |
---|---|
CStatusBar ::CommandToIndex | Obtient l’index d’un ID d’indicateur donné. |
CStatusBar ::Create | Crée la barre d’état, l’attache à l’objet CStatusBar et définit la police initiale et la hauteur de la barre. |
CStatusBar ::CreateEx | Crée un CStatusBar objet avec des styles supplémentaires pour l’objet incorporé CStatusBarCtrl . |
CStatusBar ::D rawItem | Appelé lorsqu’un aspect visuel d’un contrôle de barre d’état de dessin propriétaire change. |
CStatusBar ::GetItemID | Obtient l’ID d’indicateur d’un index donné. |
CStatusBar ::GetItemRect | Obtient le rectangle d’affichage d’un index donné. |
CStatusBar ::GetPaneInfo | Obtient l’ID d’indicateur, le style et la largeur d’un index donné. |
CStatusBar ::GetPaneStyle | Obtient le style d’indicateur d’un index donné. |
CStatusBar ::GetPaneText | Obtient le texte d’indicateur d’un index donné. |
CStatusBar ::GetStatusBarCtrl | Autorise l’accès direct au contrôle commun sous-jacent. |
CStatusBar ::SetIndicators | Définit les ID d’indicateur. |
CStatusBar ::SetPaneInfo | Définit l’ID d’indicateur, le style et la largeur d’un index donné. |
CStatusBar ::SetPaneStyle | Définit le style d’indicateur d’un index donné. |
CStatusBar ::SetPaneText | Définit le texte de l’indicateur pour un index donné. |
Notes
Les volets de sortie sont couramment utilisés comme lignes de message et comme indicateurs d’état. Les exemples incluent les lignes de message d’aide du menu qui décrivent brièvement la commande de menu sélectionnée et les indicateurs qui affichent l’état du verrou DE DÉFILEMENT, de NUM LOCK et d’autres touches.
CStatusBar ::GetStatusBarCtrl, une fonction membre nouvelle dans MFC 4.0, vous permet de tirer parti de la prise en charge du contrôle commun Windows pour la personnalisation de la barre d’état et des fonctionnalités supplémentaires. CStatusBar
les fonctions membres vous donnent la plupart des fonctionnalités des contrôles courants Windows ; Toutefois, lorsque vous appelez GetStatusBarCtrl
, vous pouvez donner à vos barres d’état encore plus les caractéristiques d’une barre d’état Windows 95/98. Lorsque vous appelez GetStatusBarCtrl
, il retourne une référence à un CStatusBarCtrl
objet. Pour plus d’informations sur la conception de barres d’outils à l’aide de contrôles courants Windows, consultez CStatusBarCtrl . Pour plus d’informations générales sur les contrôles courants, consultez Contrôles communs dans le Kit de développement logiciel (SDK) Windows.
Le framework stocke les informations d’indicateur dans un tableau avec l’indicateur le plus à gauche à la position 0. Lorsque vous créez une barre d’état, vous utilisez un tableau d’ID de chaîne que l’infrastructure associe aux indicateurs correspondants. Vous pouvez ensuite utiliser un ID de chaîne ou un index pour accéder à un indicateur.
Par défaut, le premier indicateur est « élastique » : il prend la longueur de la barre d’état non utilisée par les autres volets d’indicateur, afin que les autres volets soient alignés à droite.
Pour créer une barre d’état, procédez comme suit :
Construisez l’objet
CStatusBar
.Appelez la fonction Create (ou CreateEx) pour créer la fenêtre de barre d’état et l’attacher à l’objet
CStatusBar
.Appelez SetIndicators pour associer un ID de chaîne à chaque indicateur.
Il existe trois façons de mettre à jour le texte dans un volet de barre d’état :
Appelez CWnd ::SetWindowText pour mettre à jour le texte dans le volet 0 uniquement.
Appelez CCmdUI ::SetText dans le gestionnaire de ON_UPDATE_COMMAND_UI de la barre d’état.
Appelez SetPaneText pour mettre à jour le texte de n’importe quel volet.
Appelez SetPaneStyle pour mettre à jour le style d’un volet de barre d’état.
Pour plus d’informations sur l’utilisation CStatusBar
, consultez l’article Implémentation de barre d’état dans MFC et Note technique 31 : Barres de contrôle.
Hiérarchie d'héritage
CStatusBar
Spécifications
En-tête : afxext.h
CStatusBar ::CommandToIndex
Obtient l’index d’indicateur pour un ID donné.
int CommandToIndex(UINT nIDFind) const;
Paramètres
nIDFind
ID de chaîne de l’indicateur dont l’index doit être récupéré.
Valeur de retour
Index de l’indicateur en cas de réussite ; -1 s’il n’a pas réussi.
Notes
L’index du premier indicateur est 0.
CStatusBar ::Create
Crée une barre d’état (fenêtre enfant) et l’associe à l’objet CStatusBar
.
virtual BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Paramètres
pParentWnd
Pointeur vers l’objet CWnd dont la fenêtre Windows est le parent de la barre d’état.
dwStyle
Style de barre d’état. En plus des styles Windows standard, ces styles sont pris en charge.
CBRS_TOP barre de contrôle se trouve en haut de la fenêtre frame.
CBRS_BOTTOM barre de contrôle se trouve en bas de la fenêtre frame.
CBRS_NOALIGN barre de contrôle n’est pas repositionnée lorsque le parent est redimensionné.
nID
ID de la fenêtre enfant de la barre d’outils.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Définit également la police initiale et définit la hauteur de la barre d’état sur une valeur par défaut.
CStatusBar ::CreateEx
Appelez cette fonction pour créer une barre d’état (fenêtre enfant) et l’associer à l’objet CStatusBar
.
virtual BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Paramètres
pParentWnd
Pointeur vers l’objet CWnd dont la fenêtre Windows est le parent de la barre d’état.
dwCtrlStyle
Styles supplémentaires pour la création de l’objet CStatusBarCtrl incorporé. La valeur par défaut spécifie une barre d’état sans prise en charge de la poignée de dimensionnement ou de l’info-bulle. Les styles de barre d’état pris en charge sont les suivants :
SBARS_SIZEGRIP Le contrôle de barre d’état comprend une poignée de dimensionnement à la fin droite de la barre d’état. Une poignée de dimensionnement est similaire à une bordure de dimensionnement ; il s’agit d’une zone rectangulaire que l’utilisateur peut cliquer et faire glisser pour redimensionner la fenêtre parente.
SBT_TOOLTIPS La barre d’état prend en charge les info-bulles.
Pour plus d’informations sur ces styles, consultez Paramètres pour CStatusBarCtrl.
dwStyle
Style de barre d’état. La valeur par défaut spécifie qu’une barre d’état visible doit être créée en bas de la fenêtre frame. Appliquez n’importe quelle combinaison de styles de contrôle de barre d’état répertoriés dans Styles de fenêtre et CDialogBar ::Create. Toutefois, ce paramètre doit toujours inclure les styles WS_CHILD et WS_VISIBLE.
nID
ID de la fenêtre enfant de la barre d’état.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Cette fonction définit également la police initiale et définit la hauteur de la barre d’état sur une valeur par défaut.
Utilisez CreateEx
, au lieu de Créer, lorsque certains styles doivent être présents lors de la création du contrôle de barre d’état incorporée. Par exemple, définissez dwCtrlStyle sur SBT_TOOLTIPS pour afficher les info-bulles dans un objet de barre d’état.
CStatusBar ::CStatusBar
Construit un CStatusBar
objet, crée une police de barre d’état par défaut si nécessaire et définit les caractéristiques de police sur les valeurs par défaut.
CStatusBar();
CStatusBar ::D rawItem
Cette fonction membre est appelée par l’infrastructure lorsqu’un aspect visuel d’une barre d’état dessinée par le propriétaire change.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Paramètres
lpDrawItemStruct
Pointeur vers une structure DRAWITEMSTRUCT qui contient des informations sur le type de dessin requis.
Notes
Le itemAction
membre de la DRAWITEMSTRUCT
structure définit l’action de dessin à effectuer. Remplacez cette fonction membre pour implémenter le dessin pour un objet de dessin CStatusBar
propriétaire. L’application doit restaurer tous les objets GDI (Graphics Device Interface) sélectionnés pour le contexte d’affichage fourni dans lpDrawItemStruct avant l’arrêt de cette fonction membre.
CStatusBar ::GetItemID
Retourne l’ID de l’indicateur spécifié par nIndex.
UINT GetItemID(int nIndex) const;
Paramètres
nIndex
Index de l’indicateur dont l’ID doit être récupéré.
Valeur de retour
ID de l’indicateur spécifié par nIndex.
CStatusBar ::GetItemRect
Copie les coordonnées de l’indicateur spécifié par nIndex dans la structure pointée par lpRect.
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
Paramètres
nIndex
Index de l’indicateur dont les coordonnées de rectangle doivent être récupérées.
lpRect
Pointe vers une structure RECT ou un objet CRect qui recevra les coordonnées de l’indicateur spécifié par nIndex.
Notes
Les coordonnées sont en pixels par rapport au coin supérieur gauche de la barre d’état.
CStatusBar ::GetPaneInfo
Définit nID, nStyle et cxWidth sur l’ID, le style et la largeur du volet d’indicateur à l’emplacement spécifié par nIndex.
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
Paramètres
nIndex
Index du volet dont les informations doivent être récupérées.
nID
Référence à un UINT défini sur l’ID du volet.
nStyle
Référence à un UINT défini sur le style du volet.
cxWidth
Référence à un entier défini sur la largeur du volet.
CStatusBar ::GetPaneStyle
Appelez cette fonction membre pour récupérer le style du volet d’une barre d’état.
UINT GetPaneStyle(int nIndex) const;
Paramètres
nIndex
Index du volet dont le style doit être récupéré.
Valeur de retour
Style du volet de barre d’état spécifié par nIndex.
Notes
Le style d’un volet détermine le mode d’affichage du volet.
Pour obtenir la liste des styles disponibles pour les barres d’état, consultez Créer.
CStatusBar ::GetPaneText
Appelez cette fonction membre pour récupérer le texte qui s’affiche dans un volet de barre d’état.
CString GetPaneText(int nIndex) const; void GetPaneText(int nIndex, CString& rString) const;
Paramètres
nIndex
Index du volet dont le texte doit être récupéré.
rString
Référence à un objet CString qui contient le texte à récupérer.
Valeur de retour
Objet CString
contenant le texte du volet.
Notes
La deuxième forme de cette fonction membre remplit un CString
objet avec le texte de chaîne.
CStatusBar ::GetStatusBarCtrl
Cette fonction membre permet un accès direct au contrôle commun sous-jacent.
CStatusBarCtrl& GetStatusBarCtrl() const;
Valeur de retour
Contient une référence à un objet CStatusBarCtrl .
Notes
Permet GetStatusBarCtrl
de tirer parti des fonctionnalités du contrôle commun de la barre d’état Windows et de tirer parti de la prise en charge de CStatusBarCtrl fournit la personnalisation de la barre d’état. Par exemple, en utilisant le contrôle commun, vous pouvez spécifier un style qui inclut une poignée de dimensionnement sur la barre d’état, ou vous pouvez spécifier un style pour que la barre d’état apparaisse en haut de la zone cliente de la fenêtre parente.
Pour plus d’informations générales sur les contrôles courants, consultez Contrôles communs dans le Kit de développement logiciel (SDK) Windows.
CStatusBar ::SetIndicators
Définit l’ID de chaque indicateur sur la valeur spécifiée par l’élément correspondant du tableau lpIDArray, charge la ressource de chaîne spécifiée par chaque ID et définit le texte de l’indicateur sur la chaîne.
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
Paramètres
lpIDArray
Pointeur vers un tableau d’ID.
nIDCount
Nombre d’éléments dans le tableau pointé par lpIDArray.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
CStatusBar ::SetPaneInfo
Définit le volet d’indicateur spécifié sur un nouvel ID, un style et une largeur.
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
Paramètres
nIndex
Index du volet d’indicateur dont le style doit être défini.
nID
Nouvel ID pour le volet d’indicateur.
nStyle
Nouveau style pour le volet d’indicateur.
cxWidth
Nouvelle largeur pour le volet d’indicateur.
Notes
Les styles d’indicateur suivants sont pris en charge :
SBPS_NOBORDERS bordure no 3D autour du volet.
SBPS_POPOUT bordure inverse afin que le texte « s’affiche ».
SBPS_DISABLED Ne pas dessiner de texte.
SBPS_STRETCH volet Stretch pour remplir l’espace inutilisé. Un seul volet par barre d’état peut avoir ce style.
SBPS_NORMAL Aucun étirement, bordures ou fenêtre contextuelle.
CStatusBar ::SetPaneStyle
Appelez cette fonction membre pour définir le style du volet d’une barre d’état.
void SetPaneStyle(
int nIndex,
UINT nStyle);
Paramètres
nIndex
Index du volet dont le style doit être défini.
nStyle
Style du volet dont le style doit être défini.
Notes
Le style d’un volet détermine le mode d’affichage du volet.
Pour obtenir la liste des styles disponibles pour les barres d’état, consultez SetPaneInfo.
CStatusBar ::SetPaneText
Appelez cette fonction membre pour définir le texte du volet sur la chaîne pointée par lpszNewText.
BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
Paramètres
nIndex
Index du volet dont le texte doit être défini.
lpszNewText
Pointeur vers le nouveau texte du volet.
bUpdate
Si la valeur est TRUE, le volet est invalidé une fois le texte défini.
Valeur de retour
Valeur différente de zéro cas de réussite ; sinon, 0.
Notes
Après avoir appelé SetPaneText
, vous devez ajouter un gestionnaire de mises à jour de l’interface utilisateur pour afficher le nouveau texte dans la barre d’état.
Exemple
//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);
//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)
void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
}
Voir aussi
Exemple MFC CTRLBARS
Exemple de DLGCBR32 MFC
CControlBar Class
Graphique hiérarchique
CStatusBarCtrl, classe
CControlBar Class