CButton, classe

Fournit les fonctionnalités des contrôles bouton Windows.

Syntaxe

class CButton : public CWnd

Membres

Constructeurs publics

Nom Description
CButton ::CButton Construit un objet CButton.

Méthodes publiques

Nom Description
CButton ::Create Crée le contrôle de bouton Windows et l’attache à l’objet CButton .
CButton ::D rawItem Remplacez le dessin d’un objet dessiné CButton par le propriétaire.
CButton ::GetBitmap Récupère le handle de l’image bitmap précédemment définie avec SetBitmap.
CButton ::GetButtonStyle Récupère des informations sur le style de contrôle bouton.
CButton ::GetCheck Récupère l’état case activée d’un contrôle bouton.
CButton ::GetCursor Récupère le handle de l’image de curseur précédemment définie avec SetCursor.
CButton ::GetIcon Récupère le handle de l’icône précédemment définie avec SetIcon.
CButton ::GetIdealSize Récupère la taille idéale du contrôle bouton.
CButton ::GetImageList Récupère la liste d’images du contrôle bouton.
CButton ::GetNote Récupère le composant de note du contrôle de lien de commande actuel.
CButton ::GetNoteLength Récupère la longueur du texte de note pour le contrôle de lien de commande actuel.
CButton ::GetSplitGlyph Récupère le glyphe associé au contrôle de bouton fractionné actuel.
CButton ::GetSplitImageList Récupère la liste d’images du contrôle de bouton fractionné actuel.
CButton ::GetSplitInfo Récupère des informations qui définissent le contrôle de bouton fractionné actuel.
CButton ::GetSplitSize Récupère le rectangle englobant du composant déroulant du contrôle de bouton fractionné actuel.
CButton ::GetSplitStyle Récupère les styles de bouton fractionné qui définissent le contrôle de bouton fractionné actuel.
CButton ::GetState Récupère l’état case activée, l’état de surbrillance et l’état de focus d’un contrôle bouton.
CButton ::GetTextMargin Récupère la marge de texte du contrôle bouton.
CButton ::SetBitmap Spécifie une bitmap à afficher sur le bouton.
CButton ::SetButtonStyle Modifie le style d’un bouton.
CButton ::SetCheck Définit l’état case activée d’un contrôle bouton.
CButton ::SetCursor Spécifie une image de curseur à afficher sur le bouton.
CButton ::SetDropDownState Définit l’état déroulant du contrôle de bouton fractionné actuel.
CButton ::SetIcon Spécifie une icône à afficher sur le bouton.
CButton ::SetImageList Définit la liste d’images du contrôle bouton.
CButton ::SetNote Définit la note sur le contrôle de lien de commande actuel.
CButton ::SetSplitGlyph Associe un glyphe spécifié au contrôle de bouton fractionné actuel.
CButton ::SetSplitImageList Associe une liste d’images au contrôle de bouton fractionné actuel.
CButton ::SetSplitInfo Spécifie des informations qui définissent le contrôle de bouton fractionné actuel.
CButton ::SetSplitSize Définit le rectangle englobant du composant déroulant du contrôle de bouton fractionné actuel.
CButton ::SetSplitStyle Définit le style du contrôle de bouton fractionné actuel.
CButton ::SetState Définit l’état de mise en surbrillance d’un contrôle bouton.
CButton ::SetTextMargin Définit la marge de texte du contrôle bouton.

Notes

Un contrôle bouton est une petite fenêtre enfant rectangulaire qui peut être activée et désactivée. Les boutons peuvent être utilisés seul ou dans des groupes et peuvent être étiquetés ou affichés sans texte. Un bouton change généralement d’apparence lorsque l’utilisateur clique dessus.

Les boutons classiques sont la boîte case activée, la case d’option et le bouton d’envoi. Un CButton objet peut devenir l’un de ces éléments, en fonction du style de bouton spécifié lors de son initialisation par la fonction Créer un membre.

En outre, la classe CBitmapButton dérivée de CButton la création de contrôles de bouton étiquetés avec des images bitmap au lieu de texte. Un CBitmapButton peut avoir des bitmaps distinctes pour les états haut, bas, prioritaires et désactivés d’un bouton.

Vous pouvez créer un contrôle de bouton à partir d’un modèle de boîte de dialogue ou directement dans votre code. Dans les deux cas, appelez d’abord le constructeur CButton pour construire l’objet CButton , puis appelez la Create fonction membre pour créer le contrôle de bouton Windows et l’attacher à l’objet CButton .

La construction peut être un processus en une étape dans une classe dérivée de CButton. Écrivez un constructeur pour la classe dérivée et appelez Create à partir du constructeur.

Si vous souhaitez gérer les messages de notification Windows envoyés par un contrôle bouton à son parent (généralement une classe dérivée de CDialog), ajoutez une entrée de mappage de messages et une fonction membre du gestionnaire de messages à la classe parente pour chaque message.

Chaque entrée de carte de messages prend la forme suivante :

ON_Notification(id, memberFxn)

l’ID spécifie l’ID de fenêtre enfant du contrôle qui envoie la notification et memberFxn est le nom de la fonction membre parente que vous avez écrite pour gérer la notification.

Le prototype de fonction parent est le suivant :

afx_msg void memberFxn();

Les entrées de mappage de messages potentielles sont les suivantes :

Entrée de carte Envoyé au parent quand...
ON_BN_CLICKED L’utilisateur clique sur un bouton.
ON_BN_DOUBLECLICKED L’utilisateur double-clique sur un bouton.

Si vous créez un CButton objet à partir d’une ressource de boîte de dialogue, l’objet CButton est automatiquement détruit lorsque l’utilisateur ferme la boîte de dialogue.

Si vous créez un CButton objet dans une fenêtre, vous devrez peut-être le détruire. Si vous créez l’objet CButton sur le tas à l’aide de la new fonction, vous devez appeler delete l’objet pour le détruire lorsque l’utilisateur ferme le contrôle de bouton Windows. Si vous créez l’objet CButton sur la pile ou qu’il est incorporé dans l’objet de boîte de dialogue parent, il est détruit automatiquement.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CButton

Spécifications

En-tête : afxwin.h

CButton ::CButton

Construit un objet CButton.

CButton();

Exemple

// Declare a button object.
CButton myButton;

CButton ::Create

Crée le contrôle de bouton Windows et l’attache à l’objet CButton .

virtual BOOL Create(
    LPCTSTR lpszCaption,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Paramètres

lpszCaption
Spécifie le texte du contrôle de bouton.

dwStyle
Spécifie le style du contrôle de bouton. Appliquez n’importe quelle combinaison de styles de bouton au bouton.

Rect
Spécifie la taille et la position du contrôle de bouton. Il peut s’agir d’un objet ou d’une CRectRECT structure.

pParentWnd
Spécifie la fenêtre parente du contrôle de bouton, généralement un CDialog. Elle ne doit pas être NULL.

nID
Spécifie l’ID du contrôle de bouton.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Vous construisez un CButton objet en deux étapes. Tout d’abord, appelez le constructeur, puis appelez Create, ce qui crée le contrôle de bouton Windows et l’attache à l’objet CButton .

Si le style WS_VISIBLE est donné, Windows envoie le contrôle bouton tous les messages requis pour activer et afficher le bouton.

Appliquez les styles de fenêtre suivants à un contrôle bouton :

  • WS_CHILD Always

  • WS_VISIBLE Généralement

  • WS_DISABLED Rarement

  • WS_GROUP Pour regrouper les contrôles

  • WS_TABSTOP Pour inclure le bouton dans l’ordre de tabulation

Exemple

CButton myButton1, myButton2, myButton3, myButton4;

// Create a push button.
myButton1.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                 CRect(10, 10, 100, 30), pParentWnd, 1);

// Create a radio button.
myButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                 CRect(10, 40, 100, 70), pParentWnd, 2);

// Create an auto 3-state button.
myButton3.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                 CRect(10, 70, 100, 100), pParentWnd, 3);

// Create an auto check box.
myButton4.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
                 CRect(10, 100, 100, 130), pParentWnd, 4);

CButton ::D rawItem

Appelé par l’infrastructure lorsqu’un aspect visuel d’un bouton dessiné par le propriétaire a changé.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Paramètres

lpDrawItemStruct
Pointeur long vers une structure DRAWITEMSTRUCT . La structure contient des informations sur l’élément à dessiner et le type de dessin requis.

Notes

Un bouton dessiné par le propriétaire a le jeu de style BS_OWNERDRAW. Remplacez cette fonction membre pour implémenter le dessin pour un objet dessiné CButton par le 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 la fin de la fonction membre.

Consultez également les valeurs de style BS_ .

Exemple

// NOTE: CMyButton is a class derived from CButton. The CMyButton
// object was created as follows:
//
// CMyButton myButton;
// myButton.Create(_T("My button"),
//      WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
//      CRect(10,10,100,30), pParentWnd, 1);
//

// This example implements the DrawItem method for a CButton-derived
// class that draws the button's text using the color red.
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   UINT uStyle = DFCS_BUTTONPUSH;

   // This code only works with buttons.
   ASSERT(lpDrawItemStruct->CtlType == ODT_BUTTON);

   // If drawing selected, add the pushed style to DrawFrameControl.
   if (lpDrawItemStruct->itemState & ODS_SELECTED)
      uStyle |= DFCS_PUSHED;

   // Draw the button frame.
   ::DrawFrameControl(lpDrawItemStruct->hDC, &lpDrawItemStruct->rcItem,
                      DFC_BUTTON, uStyle);

   // Get the button's text.
   CString strText;
   GetWindowText(strText);

   // Draw the button text using the text color red.
   COLORREF crOldColor = ::SetTextColor(lpDrawItemStruct->hDC, RGB(255, 0, 0));
   ::DrawText(lpDrawItemStruct->hDC, strText, strText.GetLength(),
              &lpDrawItemStruct->rcItem, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
   ::SetTextColor(lpDrawItemStruct->hDC, crOldColor);
}

CButton ::GetBitmap

Appelez cette fonction membre pour obtenir le handle d’une bitmap, précédemment définie avec SetBitmap, associée à un bouton.

HBITMAP GetBitmap() const;

Valeur de retour

Handle vers une bitmap. NULL si aucune bitmap n’est spécifiée précédemment.

Exemple

CButton myBitmapButton;

// Create a bitmap button.
myBitmapButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_BITMAP,
                      CRect(10, 10, 60, 50), pParentWnd, 1);

// If no bitmap is defined for the button, define the bitmap to the
// system close bitmap.
if (myBitmapButton.GetBitmap() == NULL)
   myBitmapButton.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CLOSE)));

CButton ::GetButtonStyle

Récupère des informations sur le style de contrôle bouton.

UINT GetButtonStyle() const;

Valeur de retour

Retourne les styles de bouton pour cet CButton objet. Cette fonction retourne uniquement les valeurs de style BS_ , et non les autres styles de fenêtre.

Exemple

CButton myRadioButton;

// Create a radio button.
myRadioButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                     CRect(10, 10, 100, 30), pParentWnd, 1);

// Change the button style to use one of the "auto" styles; for
// push button, change to def push button.
UINT uStyle = myRadioButton.GetButtonStyle();
if (uStyle == BS_PUSHBUTTON)
   uStyle = BS_DEFPUSHBUTTON;
else if (uStyle == BS_RADIOBUTTON)
   uStyle = BS_AUTORADIOBUTTON;
else if (uStyle == BS_CHECKBOX)
   uStyle = BS_AUTOCHECKBOX;
else if (uStyle == BS_3STATE)
   uStyle = BS_AUTO3STATE;

// Change the button style to the one wanted.
myRadioButton.SetButtonStyle(uStyle);

CButton ::GetCheck

Récupère l’état case activée d’une case d’option ou d’une zone de case activée.

int GetCheck() const;

Valeur de retour

La valeur de retour d’un contrôle bouton créé avec le style BS_AUTOCHECKo OX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKo OX, BS_RADIOBUTTON ou BS_3STATE est l’une des valeurs suivantes :

Value Signification
BST_UNCHECKED L’état du bouton n’est pas case activée ed.
BST_CHECKED L’état du bouton est case activée ed.
BST_INDETERMINATE L’état du bouton est indéterminé (s’applique uniquement si le bouton a le style BS_3STATE ou BS_AUTO3STATE).

Si le bouton a un autre style, la valeur de retour est BST_UNCHECKED.

Exemple

CButton myA3Button;

// Create an auto 3-state button.
myA3Button.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                  CRect(10, 10, 100, 30), pParentWnd, 1);

// Set the check state to the next state
// (i.e. BST_UNCHECKED changes to BST_CHECKED
// BST_CHECKED changes to BST_INDETERMINATE
// BST_INDETERMINATE changes to BST_UNCHECKED).
myA3Button.SetCheck(((myA3Button.GetCheck() + 1) % 3));

CButton ::GetCursor

Appelez cette fonction membre pour obtenir le handle d’un curseur, précédemment défini avec SetCursor, associé à un bouton.

HCURSOR GetCursor();

Valeur de retour

Handle vers une image de curseur. NULL si aucun curseur n’est spécifié précédemment.

Exemple

CButton myIconButton;

// Create an icon button.
myIconButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                    CRect(10, 10, 60, 50), pParentWnd, 1);

// If no image is defined for the button, define the image to the
// system arrow and question mark cursor.
if (myIconButton.GetCursor() == NULL)
   myIconButton.SetCursor(::LoadCursor(NULL, IDC_HELP));

CButton ::GetIcon

Appelez cette fonction membre pour obtenir le handle d’une icône, précédemment définie avec SetIcon, associée à un bouton.

HICON GetIcon() const;

Valeur de retour

Handle vers une icône. NULL si aucune icône n’est spécifiée précédemment.

Exemple

CButton myIconButton2;

// Create an icon button.
myIconButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                     CRect(10, 10, 60, 50), pParentWnd, 1);

// If no icon is defined for the button, define the icon to the
// system error icon.
if (myIconButton2.GetIcon() == NULL)
   myIconButton2.SetIcon(::LoadIcon(NULL, IDI_ERROR));

CButton ::GetIdealSize

Récupère la taille idéale pour le contrôle de bouton.

BOOL GetIdealSize(SIZE* psize);

Paramètres

Psize
Pointeur vers la taille actuelle du bouton.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Cette fonction membre émule les fonctionnalités du message BCM_GETIDEALSIZE, comme décrit dans la section Boutons du Kit de développement logiciel (SDK) Windows.

CButton ::GetImageList

Appelez cette méthode pour obtenir la liste d’images à partir du contrôle bouton.

BOOL GetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Paramètres

pbuttonImagelist
Pointeur vers la liste d’images de l’objet CButton .

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Cette fonction membre émule les fonctionnalités du message BCM_GETIMAGELIST, comme décrit dans la section Boutons du Kit de développement logiciel (SDK) Windows.

CButton ::GetNote

Récupère le texte de note associé au contrôle de lien de commande actuel.

CString GetNote() const;

BOOL GetNote(
    LPTSTR lpszNote,
    UINT* cchNote) const;

Paramètres

lpszNote
[out] Pointeur vers une mémoire tampon, que l’appelant est responsable de l’allocation et de l’allocation. Si la valeur de retour est TRUE, la mémoire tampon contient le texte de note associé au contrôle de lien de commande actuel ; sinon, la mémoire tampon n’est pas modifiée.

cchNote
[in, out] Pointeur vers une variable entière non signée. Lorsque cette méthode est appelée, la variable contient la taille de la mémoire tampon spécifiée par le paramètre lpszNote . Lorsque cette méthode est retournée, si la valeur de retour est TRUE, la variable contient la taille de la note associée au contrôle de lien de commande actuel. Si la valeur de retour est FALSE, la variable contient la taille de mémoire tampon requise pour contenir la note.

Valeur de retour

Dans la première surcharge, un objet CString qui contient le texte de note associé au contrôle de lien de commande actuel.

-ou-

Dans la deuxième surcharge, TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_COMMANDLINK ou BS_DEFCOMMANDLINK.

Cette méthode envoie le message BCM_GETNOTE , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

CButton ::GetNoteLength

Récupère la longueur du texte de note pour le contrôle de lien de commande actuel.

UINT GetNoteLength() const;

Valeur de retour

Longueur du texte de note, en caractères Unicode 16 bits, pour le contrôle de lien de commande actuel.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_COMMANDLINK ou BS_DEFCOMMANDLINK.

Cette méthode envoie le message BCM_GETNOTELENGTH , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

CButton ::GetSplitGlyph

Récupère le glyphe associé au contrôle de bouton fractionné actuel.

TCHAR GetSplitGlyph() const;

Valeur de retour

Caractère de glyphe associé au contrôle de bouton fractionné actuel.

Notes

Un glyphe est la représentation physique d’un caractère dans une police particulière. Par exemple, un contrôle bouton fractionné peut être décoré avec le glyphe du caractère de marque unicode case activée (U+2713).

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_GLYPH, puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows. Lorsque la fonction de message retourne, cette méthode récupère le glyphe du himlGlyph membre de la structure.

CButton ::GetSplitImageList

Récupère la liste d’images du contrôle de bouton fractionné actuel.

CImageList* GetSplitImageList() const;

Valeur de retour

Pointeur vers un objet CImageList .

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_IMAGE, puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows. Lorsque la fonction de message retourne, cette méthode récupère la liste d’images à partir du himlGlyph membre de la structure.

CButton ::GetSplitInfo

Récupère les paramètres qui déterminent la façon dont Windows dessine le contrôle de bouton fractionné actuel.

BOOL GetSplitInfo(PBUTTON_SPLITINFO pInfo) const;

Paramètres

pInfo
[out] Pointeur vers une structure BUTTON_SPLITINFO qui reçoit des informations sur le contrôle de bouton fractionné actuel. L’appelant est responsable de l’allocation de la structure.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Cette méthode envoie le message BCM_GETSPLITINFO , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

CButton ::GetSplitSize

Récupère le rectangle englobant du composant déroulant du contrôle de bouton fractionné actuel.

BOOL GetSplitSize(LPSIZE pSize) const;

Paramètres

Psize
[out] Pointeur vers une structure SIZE qui reçoit la description d’un rectangle.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Lorsque le contrôle bouton fractionné est développé, il peut afficher un composant déroulant tel qu’un contrôle de liste ou un contrôle de page. Cette méthode récupère le rectangle englobant qui contient le composant déroulant.

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_SIZE, puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows. Lorsque la fonction de message retourne, cette méthode récupère le rectangle englobant du size membre de la structure.

CButton ::GetSplitStyle

Récupère les styles de bouton fractionné qui définissent le contrôle de bouton fractionné actuel.

UINT GetSplitStyle() const;

Valeur de retour

Combinaison au niveau du bit des styles de bouton fractionné. Pour plus d’informations, consultez le uSplitStyle membre de la structure BUTTON_SPLITINFO .

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Les styles de bouton fractionné spécifient l’alignement, le rapport d’aspect et le format graphique avec lequel Windows dessine une icône de bouton fractionné.

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_STYLE, puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows. Lorsque la fonction de message retourne, cette méthode récupère les styles de bouton fractionné à partir du uSplitStyle membre de la structure.

CButton ::GetState

Récupère l’état d’un contrôle bouton.

UINT GetState() const;

Valeur de retour

Champ de bits qui contient la combinaison de valeurs qui indiquent l’état actuel d’un contrôle bouton. Le tableau suivant répertorie les valeurs possibles.

État du bouton Value Description
BST_UNCHECKED 0x0000 État initial.
BST_CHECKED 0x0001 Le contrôle bouton est case activée ed.
BST_INDETERMINATE 0x0002 L’état est indéterminé (possible uniquement lorsque le contrôle de bouton a trois états).
BST_PUSHED 0x0004 Le contrôle bouton est enfoncé.
BST_FOCUS 0x0008 Le contrôle bouton a le focus.

Notes

Un contrôle bouton avec le style de bouton BS_3STATE ou BS_AUTO3STATE crée une zone de case activée qui a un troisième état nommé l’état indéterminé. L’état indéterminé indique que la zone de case activée n’est ni case activée ni non case activée ed.

Exemple

CButton myPushButton;

// Create a push button.
myPushButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                    CRect(10, 10, 100, 30), pParentWnd, 1);

// Invert the highlight state of the button.
myPushButton.SetState(!(myPushButton.GetState() & 0x0004));

CButton ::GetTextMargin

Appelez cette méthode pour obtenir la marge de texte de l’objet CButton .

BOOL GetTextMargin(RECT* pmargin);

Paramètres

pmargin
Pointeur vers la marge de texte de l’objet CButton .

Valeur de retour

Retourne la marge de texte. Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Cette fonction membre émule les fonctionnalités du message BCM_GETTEXTMARGIN, comme décrit dans la section Boutons du Kit de développement logiciel (SDK) Windows.

CButton ::SetBitmap

Appelez cette fonction membre pour associer une nouvelle bitmap au bouton.

HBITMAP SetBitmap(HBITMAP hBitmap);

Paramètres

hBitmap
Handle d’une bitmap.

Valeur de retour

Handle d’une bitmap précédemment associée au bouton.

Notes

L’image bitmap est automatiquement placée sur le visage du bouton, centrée par défaut. Si l’image bitmap est trop grande pour le bouton, elle est clippée de l’un ou l’autre côté. Vous pouvez choisir d’autres options d’alignement, notamment les suivantes :

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Contrairement à CBitmapButton, qui utilise quatre bitmaps par bouton, SetBitmap n’utilise qu’une seule bitmap par bouton. Lorsque le bouton est enfoncé, l’image bitmap s’affiche pour basculer vers le bas et vers la droite.

Vous êtes responsable de la publication de l’image bitmap lorsque vous en avez terminé.

Exemple

CButton myBitmapButton;

// Create a bitmap button.
myBitmapButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_BITMAP,
                      CRect(10, 10, 60, 50), pParentWnd, 1);

// If no bitmap is defined for the button, define the bitmap to the
// system close bitmap.
if (myBitmapButton.GetBitmap() == NULL)
   myBitmapButton.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CLOSE)));

CButton ::SetButtonStyle

Modifie le style d’un bouton.

void SetButtonStyle(
    UINT nStyle,
    BOOL bRedraw = TRUE);

Paramètres

nStyle
Spécifie le style de bouton.

bRedraw
Spécifie si le bouton doit être redessiné. Une valeur différente de zéro redessine le bouton. Une valeur 0 ne redessine pas le bouton. Le bouton est redessiné par défaut.

Notes

Utilisez la GetButtonStyle fonction membre pour récupérer le style de bouton. Le mot de bas ordre du style de bouton complet est le style spécifique au bouton.

Exemple

CButton myRadioButton;

// Create a radio button.
myRadioButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON,
                     CRect(10, 10, 100, 30), pParentWnd, 1);

// Change the button style to use one of the "auto" styles; for
// push button, change to def push button.
UINT uStyle = myRadioButton.GetButtonStyle();
if (uStyle == BS_PUSHBUTTON)
   uStyle = BS_DEFPUSHBUTTON;
else if (uStyle == BS_RADIOBUTTON)
   uStyle = BS_AUTORADIOBUTTON;
else if (uStyle == BS_CHECKBOX)
   uStyle = BS_AUTOCHECKBOX;
else if (uStyle == BS_3STATE)
   uStyle = BS_AUTO3STATE;

// Change the button style to the one wanted.
myRadioButton.SetButtonStyle(uStyle);

CButton ::SetCheck

Définit ou réinitialise l’état case activée d’une case d’option ou d’une zone de case activée.

void SetCheck(int nCheck);

Paramètres

nCheck
Spécifie l’état case activée. Ce paramètre peut avoir l’une des valeurs suivantes :

Value Signification
BST_UNCHECKED Définissez l’état du bouton sur non case activée ed.
BST_CHECKED Définissez l’état du bouton sur case activée ed.
BST_INDETERMINATE Définissez l’état du bouton sur indéterminé. Cette valeur ne peut être utilisée que si le bouton a le style BS_3STATE ou BS_AUTO3STATE.

Notes

Cette fonction membre n’a aucun effet sur un bouton push.

Exemple

CButton myA3Button;

// Create an auto 3-state button.
myA3Button.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
                  CRect(10, 10, 100, 30), pParentWnd, 1);

// Set the check state to the next state
// (i.e. BST_UNCHECKED changes to BST_CHECKED
// BST_CHECKED changes to BST_INDETERMINATE
// BST_INDETERMINATE changes to BST_UNCHECKED).
myA3Button.SetCheck(((myA3Button.GetCheck() + 1) % 3));

CButton ::SetCursor

Appelez cette fonction membre pour associer un nouveau curseur au bouton.

HCURSOR SetCursor(HCURSOR hCursor);

Paramètres

hCursor
Handle d’un curseur.

Valeur de retour

Handle d’un curseur précédemment associé au bouton.

Notes

Le curseur est automatiquement placé sur le visage du bouton, centré par défaut. Si le curseur est trop grand pour le bouton, il est clippé sur l’un ou l’autre côté. Vous pouvez choisir d’autres options d’alignement, notamment les suivantes :

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Contrairement à CBitmapButton, qui utilise quatre bitmaps par bouton, SetCursor n’utilise qu’un seul curseur par bouton. Lorsque le bouton est enfoncé, le curseur s’affiche pour basculer vers le bas et vers la droite.

Exemple

CButton myIconButton;

// Create an icon button.
myIconButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                    CRect(10, 10, 60, 50), pParentWnd, 1);

// If no image is defined for the button, define the image to the
// system arrow and question mark cursor.
if (myIconButton.GetCursor() == NULL)
   myIconButton.SetCursor(::LoadCursor(NULL, IDC_HELP));

CButton ::SetDropDownState

Définit l’état déroulant du contrôle de bouton fractionné actuel.

BOOL SetDropDownState(BOOL fDropDown);

Paramètres

fDropDown
[in] TRUE pour définir l’état BST_DROPDOWNPUSHED ; sinon, FALSE.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Un contrôle bouton fractionné a un style de BS_SPLITo UTTON ou BS_DEFSPLITo UTTON et se compose d’un bouton et d’une flèche déroulante à droite. Pour plus d’informations, consultez Styles de bouton. En règle générale, l’état déroulant est défini lorsque l’utilisateur clique sur la flèche déroulante. Utilisez cette méthode pour définir par programme l’état déroulant du contrôle. La flèche déroulante est dessinée ombrée pour indiquer l’état.

Cette méthode envoie le message BCM_SETDROPDOWNSTATE , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_splitButtonutilisée pour accéder par programmation au contrôle de bouton fractionné. Cette variable est utilisée dans l’exemple suivant.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

L’exemple de code suivant définit l’état du contrôle bouton fractionné pour indiquer que la flèche déroulante est poussée.

/* Set the state of the split button control to indicate that 
   the drop-down arrow is pushed. The arrow is drawn shaded to 
   indicate the state.
   */
m_splitButton.SetDropDownState(TRUE);

CButton ::SetElevationRequired

Définit l’état du contrôle elevation requiredbouton actuel sur , ce qui est nécessaire pour que le contrôle affiche une icône de sécurité avec élévation de privilèges.

BOOL SetElevationRequired(BOOL fElevationRequired);

Paramètres

fElevationRequired
[in] TRUE pour définir elevation required l’état ; sinon, FALSE.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Si un contrôle de bouton ou de lien de commande nécessite une autorisation de sécurité élevée pour effectuer une action, définissez le contrôle sur elevation required l’état. Par la suite, Windows affiche l’icône de protection du contrôle de compte d’utilisateur (UAC) sur le contrôle. Pour plus d’informations, consultez Contrôle de compte d’utilisateur.

Cette méthode envoie le message BCM_SETSHIELD , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

CButton ::SetIcon

Appelez cette fonction membre pour associer une nouvelle icône au bouton.

HICON SetIcon(HICON hIcon);

Paramètres

hIcon
Handle d’une icône.

Valeur de retour

Handle d’une icône précédemment associée au bouton.

Notes

L’icône est automatiquement placée sur le visage du bouton, centrée par défaut. Si l’icône est trop grande pour le bouton, elle est clippée sur l’un ou l’autre côté. Vous pouvez choisir d’autres options d’alignement, notamment les suivantes :

  • BS_TOP

  • BS_LEFT

  • BS_RIGHT

  • BS_CENTER

  • BS_BOTTOM

  • BS_VCENTER

Contrairement à CBitmapButton, qui utilise quatre bitmaps par bouton, SetIcon n’utilise qu’une seule icône par bouton. Lorsque le bouton est enfoncé, l’icône s’affiche pour basculer vers le bas et vers la droite.

Exemple

CButton myIconButton2;

// Create an icon button.
myIconButton2.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_ICON,
                     CRect(10, 10, 60, 50), pParentWnd, 1);

// If no icon is defined for the button, define the icon to the
// system error icon.
if (myIconButton2.GetIcon() == NULL)
   myIconButton2.SetIcon(::LoadIcon(NULL, IDI_ERROR));

CButton ::SetImageList

Appelez cette méthode pour définir la liste d’images de l’objet CButton .

BOOL SetImageList(PBUTTON_IMAGELIST pbuttonImagelist);

Paramètres

pbuttonImagelist
Pointeur vers la nouvelle liste d’images.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Cette fonction membre émule les fonctionnalités du message BCM_SETIMAGELIST, comme décrit dans la section Boutons du Kit de développement logiciel (SDK) Windows.

CButton ::SetNote

Définit le texte de la note pour le contrôle de lien de commande actuel.

BOOL SetNote(LPCTSTR lpszNote);

Paramètres

lpszNote
[in] Pointeur vers une chaîne Unicode définie comme texte de note pour le contrôle de lien de commande.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_COMMANDLINK ou BS_DEFCOMMANDLINK.

Cette méthode envoie le message BCM_SETNOTE , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_cmdLinkutilisée pour accéder par programmation au contrôle de lien de commande. Cette variable est utilisée dans l’exemple suivant.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

L’exemple de code suivant définit le texte de note du contrôle de lien de commande.

// Set the command link text.
m_cmdLink.SetNote(_T("This is the command link note."));

CButton ::SetSplitGlyph

Associe un glyphe spécifié au contrôle de bouton fractionné actuel.

BOOL SetSplitGlyph(TCHAR chGlyph);

Paramètres

chGlyphe
[in] Caractère qui spécifie le glyphe à utiliser comme flèche déroulante du bouton fractionné.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles qui ont le style de bouton BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Un glyphe est la représentation physique d’un caractère dans une police particulière. Le paramètre chGlyphe n’est pas utilisé comme glyphe, mais il est utilisé à la place pour sélectionner un glyphe à partir d’un ensemble de glyphes définis par le système. Le glyphe de flèche déroulante par défaut est spécifié par un caractère « 6 » et ressemble au caractère Unicode BLACK DOWN-POINTING TRIANGLE (U+25BC).

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_GLYPH et le himlGlyph membre avec le paramètre chGlyph , puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows.

CButton ::SetSplitImageList

Associe une liste d’images au contrôle de bouton fractionné actuel.

BOOL SetSplitImageList(CImageList* pSplitImageList);

Paramètres

pSplitImageList
[in] Pointeur vers un objet CImageList à affecter au contrôle de bouton fractionné actuel.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_IMAGE et le himlGlyph membre avec le paramètre pSplitImageList, puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows.

CButton ::SetSplitInfo

Spécifie les paramètres qui déterminent la façon dont Windows dessine le contrôle de bouton fractionné actuel.

BOOL SetSplitInfo(PBUTTON_SPLITINFO pInfo);

Paramètres

pInfo
[in] Pointeur vers une structure BUTTON_SPLITINFO qui définit le contrôle de bouton fractionné actuel.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Cette méthode envoie le message BCM_SETSPLITINFO , qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_splitButtonutilisée pour accéder par programmation au contrôle de bouton fractionné.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

L’exemple de code suivant modifie le glyphe utilisé pour la flèche déroulante du bouton fractionné. L’exemple remplace un glyphe de triangle pointant vers le haut pour le glyphe de triangle pointant vers le bas par défaut. Le glyphe affiché dépend du caractère que vous spécifiez dans le himlGlyph membre de la BUTTON_SPLITINFO structure. Le glyphe de triangle pointant vers le bas est spécifié par un caractère « 6 » et le glyphe de triangle pointant vers le haut est spécifié par un caractère « 5 ». Pour la comparaison, consultez la méthode pratique, CButton ::SetSplitGlyph.

/* 
   The drop-down arrow glyph is a function of the specified character. 
   The default "down" drop-down arrow glyph is specified by a 
   character '6'. Set the "up" arrow glyph, which is a character '5'.
   See the convenience method, SetSplitGlyph(), for comparison.
   */
BUTTON_SPLITINFO bsInfo = {0};
bsInfo.mask = BCSIF_GLYPH;
TCHAR chGlyph = _T('5'); // "up" arrow glyph
bsInfo.himlGlyph = (HIMAGELIST)chGlyph;
bRC = m_splitButton.SetSplitInfo(&bsInfo);

CButton ::SetSplitSize

Définit le rectangle englobant du composant déroulant du contrôle de bouton fractionné actuel.

BOOL SetSplitSize(LPSIZE pSize);

Paramètres

Psize
[in] Pointeur vers une structure SIZE qui décrit un rectangle englobant.

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Lorsque le contrôle bouton fractionné est développé, il peut afficher un composant déroulant tel qu’un contrôle de liste ou un contrôle de page. Cette méthode spécifie la taille du rectangle englobant qui contient le composant déroulant.

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_SIZE et le size membre avec le paramètre pSize , puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_splitButtonutilisée pour accéder par programmation au contrôle de bouton fractionné. Cette variable est utilisée dans l’exemple suivant.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

L’exemple de code suivant double la taille de la flèche déroulante du bouton fractionné.

// Double the size of the split button drop-down arrow.
SIZE sz;
bRC = m_splitButton.GetSplitSize(&sz); // current size
sz.cx = sz.cx * 2;
sz.cy = sz.cy * 2;
bRC = m_splitButton.SetSplitSize(&sz);

CButton ::SetSplitStyle

Définit le style du contrôle de bouton fractionné actuel.

BOOL SetSplitStyle(UINT uSplitStyle);

Paramètres

uSplitStyle
[in] Combinaison au niveau du bit des styles de bouton fractionné. Pour plus d’informations, consultez le uSplitStyle membre de la structure BUTTON_SPLITINFO .

Valeur de retour

TRUE si cette méthode réussit ; sinon, FALSE.

Notes

Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITo UTTON ou BS_DEFSPLITo UTTON.

Les styles de bouton fractionné spécifient l’alignement, le rapport d’aspect et le format graphique avec lequel Windows dessine une icône de bouton fractionné. Pour plus d’informations, consultez le uSplitStyle membre de la structure BUTTON_SPLITINFO .

Cette méthode initialise le mask membre d’une structure BUTTON_SPLITINFO avec l’indicateur BCSIF_STYLE et le uSplitStyle membre avec le paramètre uSplitStyle , puis envoie cette structure dans le message BCM_GETSPLITINFO décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_splitButtonutilisée pour accéder par programmation au contrôle de bouton fractionné.

public:
// Variable to access programatically defined command link control.
CButton m_cmdLink;
// Variable to access programatically defined split button control.
CButton m_splitButton;

L’exemple de code suivant définit le style de la flèche déroulante bouton fractionné. Le style BCSS_ALIGNLEFT affiche la flèche située à gauche du bouton, et le style BCSS_STRETCH conserve les proportions de la flèche déroulante lorsque vous redimensionnez le bouton.

/* 
    Set the style of the split button drop-down arrow: Display the 
    arrow on the left and retain the arrow's proportions when resizing 
    the control.
    */
bRC = m_splitButton.SetSplitStyle(BCSS_ALIGNLEFT | BCSS_STRETCH);

CButton ::SetState

Définit si un contrôle bouton est mis en surbrillance ou non.

void SetState(BOOL bHighlight);

Paramètres

bHighlight
Spécifie si le bouton doit être mis en surbrillance. Une valeur différente de zéro met en surbrillance le bouton ; une valeur 0 supprime toute mise en surbrillance.

Notes

La mise en surbrillance affecte l’extérieur d’un contrôle de bouton. Il n’a aucun effet sur l’état case activée d’une case d’option ou d’une boîte case activée.

Un contrôle bouton est automatiquement mis en surbrillance lorsque l’utilisateur clique et conserve le bouton gauche de la souris. La mise en surbrillance est supprimée lorsque l’utilisateur relâche le bouton de la souris.

Exemple

CButton myPushButton;

// Create a push button.
myPushButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                    CRect(10, 10, 100, 30), pParentWnd, 1);

// Invert the highlight state of the button.
myPushButton.SetState(!(myPushButton.GetState() & 0x0004));

CButton ::SetTextMargin

Appelez cette méthode pour définir la marge de texte de l’objet CButton .

BOOL SetTextMargin(RECT* pmargin);

Paramètres

pmargin
Pointeur vers la nouvelle marge de texte.

Valeur de retour

Retourne TRUE en cas de réussite, FALSE en cas d’échec.

Notes

Cette fonction membre émule les fonctionnalités du message BCM_SETTEXTMARGIN, comme décrit dans la section Boutons du Kit de développement logiciel (SDK) Windows.

Voir aussi

CWnd, classe
Graphique hiérarchique
CWnd, classe
CComboBox, classe
CEdit, classe
CListBox, classe
CScrollBar, classe
CStatic, classe
CBitmapButton, classe
CDialog, classe