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
Créez une à quatre images bitmap pour le bouton.
Construisez l’objet CBitmapButton .
Appelez la fonction Create pour créer le contrôle de bouton Windows et l’attacher à l’objet
CBitmapButton
.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
Créez une à quatre images bitmap pour le bouton.
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.
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.
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 la légende du bouton à l’étape 3. Pour la légende du bouton « 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.
Dans la classe de dialogue de votre application (dérivée de ),
CDialog
ajoutez unCBitmapButton
objet membre.Dans la routine OnInitDialog de l’objet
CDialog
, appelez la fonction AutoLoad de l’objetCBitmapButton
en utilisant comme paramètres l’ID de contrôle du bouton et le pointeur dethis
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 CDialog
dé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
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();