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 de vérification d’un contrôle de 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 de vérification, 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 de vérification d’un contrôle de 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 case à cocher, 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 )
où 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
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 CRect
RECT
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 de vérification d’une case d’option ou d’une case à cocher.
int GetCheck() const;
Valeur de retour
La valeur de retour d’un contrôle bouton créé avec le style BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON ou BS_3STATE est l’une des valeurs suivantes :
Valeur | Signification |
---|---|
BST_UNCHECKED | L’état du bouton est désactivé. |
BST_CHECKED | L’état du bouton est activé. |
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 coche Unicode (U+2713).
Utilisez cette méthode uniquement avec les contrôles dont le style de bouton est BS_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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 | Valeur | Description |
---|---|---|
BST_UNCHECKED | 0x0000 | État initial. |
BST_CHECKED | 0x0001 | Le contrôle bouton est activé. |
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 case à cocher qui a un troisième état nommé l’état indéterminé. L’état indéterminé indique que la case à cocher n’est ni cochée ni décochée.
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 de vérification d’une case d’option ou d’une case à cocher.
void SetCheck(int nCheck);
Paramètres
nCheck
Spécifie l’état de vérification. Ce paramètre peut avoir l’une des valeurs suivantes :
Valeur | Signification |
---|---|
BST_UNCHECKED | Définissez l’état du bouton sur désactivé. |
BST_CHECKED | Définissez l’état du bouton sur activé. |
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_SPLITBUTTON ou de BS_DEFSPLITBUTTON et se compose d’un bouton et d’une flèche déroulante vers la 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_splitButton
utilisé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 required
bouton 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_cmdLink
utilisé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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_splitButton
utilisé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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_splitButton
utilisé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_SPLITBUTTON ou BS_DEFSPLITBUTTON.
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_splitButton
utilisé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. Elle n’a aucun effet sur l’état de vérification d’une case d’option ou d’une case à cocher.
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