Share via


CBitmapButton, classe

Crée des contrôles de bouton de commande étiquetés avec des images bitmap au lieu de texte.

Syntaxe

class CBitmapButton : public CButton

Membres

Constructeurs publics

Nom Description
CBitmapButton ::CBitmapButton Construit un objet CBitmapButton.

Méthodes publiques

Nom Description
CBitmapButton ::AutoLoad Associe un bouton dans une boîte de dialogue à un objet de la CBitmapButton classe, charge le ou les bitmaps par nom et dimensionne le bouton pour qu’il corresponde à la bitmap.
CBitmapButton ::LoadBitmaps Initialise l’objet en chargeant une ou plusieurs ressources bitmap nommées à partir du fichier de ressources de l’application et en attachant les bitmaps à l’objet.
CBitmapButton ::SizeToContent Dimensionne le bouton pour prendre en charge la bitmap.

Notes

CBitmapButton les objets contiennent jusqu’à quatre bitmaps, qui contiennent des images pour les différents états, un bouton peut supposer : haut (ou normal), bas (ou sélectionné), prioritaire et désactivé. Seule la première bitmap est requise ; les autres sont facultatifs.

Les images de bouton bitmap incluent la bordure autour de l’image ainsi que l’image elle-même. La bordure joue généralement un rôle dans l’affichage de l’état du bouton. Par exemple, l’image bitmap de l’état prioritaire est généralement semblable à celle de l’état haut, mais avec un rectangle en pointillés en arrière à partir de la bordure ou d’une ligne solide épaisse à la bordure. La bitmap pour l’état désactivé ressemble généralement à celle de l’état haut, mais présente un contraste inférieur (comme une sélection de menu grisé ou grisée).

Ces bitmaps peuvent être de n’importe quelle taille, mais toutes sont traitées comme si elles étaient de la même taille que la bitmap pour l’état up.

Différentes applications demandent différentes combinaisons d’images bitmap :

Haut Descendre Prioritaire Désactivé Application
× Bitmap
× × Bouton sans style WS_TABSTOP
× × × × Bouton boîte de dialogue avec tous les états
× × × Bouton de boîte de dialogue avec style WS_TABSTOP

Lors de la création d’un contrôle bitmap-button, définissez le style BS_OWNERDRAW pour spécifier que le bouton est dessiné par le propriétaire. Windows envoie ainsi les messages WM_MEASUREITEM et WM_DRAWITEM pour le bouton ; l’infrastructure gère ces messages et gère l’apparence du bouton pour vous.

Pour créer un contrôle bitmap-button dans la zone cliente d’une fenêtre

  1. Créez une à quatre images bitmap pour le bouton.

  2. Construisez l’objet CBitmapButton .

  3. Appelez la fonction Create pour créer le contrôle de bouton Windows et l’attacher à l’objet CBitmapButton .

  4. Appelez la fonction membre LoadBitmaps pour charger les ressources bitmap une fois le bouton bitmap construit.

Pour inclure un contrôle bitmap-bouton dans une boîte de dialogue

  1. Créez une à quatre images bitmap pour le bouton.

  2. Créez un modèle de boîte de dialogue avec un bouton de dessin propriétaire positionné là où vous souhaitez le bouton bitmap. La taille du bouton dans le modèle n’a pas d’importance.

  3. Définissez la légende du bouton sur une valeur telle que « MYIMAGE » et définissez un symbole pour le bouton tel que IDC_MYIMAGE.

  4. Dans le script de ressource de votre application, attribuez à chacune des images créées pour le bouton un ID construit en ajoutant l’une des lettres « U », « D », « F » ou « X » (pour haut, bas, prioritaire et désactivé) à la chaîne utilisée pour le bouton légende à l’étape 3. Pour le bouton légende « MYIMAGE », par exemple, les ID seraient « MYIMAGEU », « MYIMAGED », « MYIMAGEF » et « MYIMAGEX ». Vous devez spécifier l’ID de vos bitmaps entre guillemets doubles. Sinon, l’éditeur de ressources affecte un entier à la ressource et MFC échoue lors du chargement de l’image.

  5. Dans la classe de dialogue de votre application (dérivée de ), CDialogajoutez un CBitmapButton objet membre.

  6. Dans la routine OnInitDialog de l’objetCDialog, appelez la fonction AutoLoad de l’objet CBitmapButton en utilisant comme paramètres l’ID de contrôle du bouton et le pointeur de this l’objetCDialog.

Si vous souhaitez gérer les messages de notification Windows, tels que BN_CLICKED, envoyés par un contrôle de bouton bitmap à son parent (généralement une classe dérivée de CDialog), ajoutez à l’objet dérivé de l’objet CDialogdérivé d’un message une entrée de carte de message et une fonction membre du gestionnaire de messages pour chaque message. Les notifications envoyées par un CBitmapButton objet sont identiques à celles envoyées par un objet CButton .

La classe CToolBar adopte une approche différente des boutons bitmap.

Pour plus d’informations sur CBitmapButton, consultez Contrôles.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CButton

CBitmapButton

Spécifications

En-tête : afxext.h

CBitmapButton ::AutoLoad

Associe un bouton dans une boîte de dialogue à un objet de la CBitmapButton classe, charge le ou les bitmaps par nom et dimensionne le bouton pour qu’il corresponde à la bitmap.

BOOL AutoLoad(
    UINT nID,
    CWnd* pParent);

Paramètres

nID
ID de contrôle du bouton.

pParent
Pointeur vers l’objet propriétaire du bouton.

Valeur de retour

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

Notes

Utilisez la AutoLoad fonction pour initialiser un bouton de dessin propriétaire dans une boîte de dialogue en tant que bouton bitmap. Les instructions d’utilisation de cette fonction se trouvent dans les remarques de la CBitmapButton classe.

Exemple

CBitmapButton myButton;

// Initialize the owner-drawn button with the id IDC_MYBUTTON as a bitmap
// button. This code is used in the OnInitDialog handler of my dialog.
myButton.AutoLoad(IDC_MYBUTTON, this);

CBitmapButton ::CBitmapButton

Crée un objet CBitmapButton.

CBitmapButton();

Notes

Après avoir créé l’objet C++ CBitmapButton , appelez CButton ::Create pour créer le contrôle de bouton Windows et l’attacher à l’objet CBitmapButton .

Exemple

// Declare a bitmap button object on the stack.
CBitmapButton myButton;

// Declare a bitmap button object on the heap.
CBitmapButton *pmyButton = new CBitmapButton;

CBitmapButton ::LoadBitmaps

Utilisez cette fonction lorsque vous souhaitez charger des images bitmap identifiées par leurs noms de ressources ou numéros d’ID, ou lorsque vous ne pouvez pas utiliser la AutoLoad fonction, car, par exemple, vous créez un bouton bitmap qui ne fait pas partie d’une boîte de dialogue.

BOOL LoadBitmaps(
    LPCTSTR lpszBitmapResource,
    LPCTSTR lpszBitmapResourceSel = NULL,
    LPCTSTR lpszBitmapResourceFocus = NULL,
    LPCTSTR lpszBitmapResourceDisabled = NULL);

BOOL LoadBitmaps(
    UINT nIDBitmapResource,
    UINT nIDBitmapResourceSel = 0,
    UINT nIDBitmapResourceFocus = 0,
    UINT nIDBitmapResourceDisabled = 0);

Paramètres

lpszBitmapResource
Pointe vers la chaîne terminée par null qui contient le nom de la bitmap pour l’état normal ou « up » d’un bouton bitmap. Obligatoire.

lpszBitmapResourceSel
Pointe vers la chaîne terminée par null qui contient le nom de la bitmap pour l’état sélectionné ou « down » d’un bouton bitmap. Peut être NULL.

lpszBitmapResourceFocus
Pointe vers la chaîne terminée par null qui contient le nom de la bitmap pour l’état prioritaire d’un bouton bitmap. Peut être NULL.

lpszBitmapResourceDisabled
Pointe vers la chaîne terminée par null qui contient le nom de la bitmap pour l’état désactivé d’un bouton bitmap. Peut être NULL.

nIDBitmapResource
Spécifie le numéro d’ID de ressource de la ressource bitmap pour l’état normal ou « up » d’un bouton bitmap. Obligatoire.

nIDBitmapResourceSel
Spécifie le numéro d’ID de ressource de la ressource bitmap pour l’état sélectionné ou « down » d’un bouton bitmap. Peut-être 0.

nIDBitmapResourceFocus
Spécifie le numéro d’ID de ressource de la ressource bitmap pour l’état prioritaire d’un bouton bitmap. Peut-être 0.

nIDBitmapResourceDisabled
Spécifie le numéro d’ID de ressource de la ressource bitmap pour l’état désactivé d’un bouton bitmap. Peut-être 0.

Valeur de retour

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

Exemple


// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
                  CRect(10, 10, 100, 100), pParentWnd, 1);

// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);

CBitmapButton ::SizeToContent

Appelez cette fonction pour redimensionner un bouton bitmap à la taille de la bitmap.

void SizeToContent();

Exemple

CBitmapButton *pmyButton = new CBitmapButton();

// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
                  CRect(10, 10, 100, 100), pParentWnd, 1);

// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);

// Resize the button to be the size of the bitmaps.
pmyButton->SizeToContent();

Voir aussi

Exemple CTRLTEST MFC
CButton, classe
Graphique hiérarchique