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 :

  1. Construisez l’objet CStatusBar .

  2. Appelez la fonction Create (ou CreateEx) pour créer la fenêtre de barre d’état et l’attacher à l’objet CStatusBar .

  3. 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 :

  1. Appelez CWnd ::SetWindowText pour mettre à jour le texte dans le volet 0 uniquement.

  2. Appelez CCmdUI ::SetText dans le gestionnaire de ON_UPDATE_COMMAND_UI de la barre d’état.

  3. 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

CObject

CCmdTarget

CWnd

CControlBar

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