Message TB_SETIMAGELIST
Définit la liste d’images utilisée par la barre d’outils pour afficher les boutons qui sont dans leur état par défaut.
Paramètres
-
wParam
-
Version 5.80. Index de la liste. Si vous utilisez une seule liste d’images ou une version antérieure des contrôles communs, définissez wParam sur zéro. Pour plus d’informations sur l’utilisation de plusieurs listes d’images, consultez Remarques.
-
lParam
-
Handle de la liste d’images à définir. Si ce paramètre est NULL, aucune image n’est affichée dans les boutons.
Valeur retournée
Retourne le handle de la liste d’images précédemment utilisée pour afficher les boutons dans leur état par défaut, ou NULL si aucune liste d’images n’a été définie précédemment.
Notes
Remarque
Votre application est responsable de la libération de la liste d’images une fois la barre d’outils détruite.
Le message TB_SETIMAGELIST ne peut pas être combiné avec TB_ADDBITMAP. Il ne peut pas non plus être utilisé avec les barres d’outils créées avec CreateToolbarEx, qui appelle TB_ADDBITMAP en interne. Lorsque vous créez une barre d’outils avec CreateToolbarEx ou utilisez TB_ADDBITMAP pour ajouter des images, la barre d’outils gère la liste d’images en interne. Toute tentative de modification avec TB_SETIMAGELIST a des conséquences imprévisibles.
Avec la version 5.80 ou ultérieure des contrôles communs, les images de bouton ne doivent pas nécessairement provenir de la même liste d’images. Pour utiliser plusieurs listes d’images pour vos images de bouton de barre d’outils :
- Activez plusieurs listes d’images en envoyant au contrôle de barre d’outils un message CCM_SETVERSION avec wParam (le numéro de version) défini sur 5.
- Pour chaque liste d’images que vous souhaitez utiliser, envoyez au contrôle de barre d’outils un message TB_SETIMAGELIST. Définissez wParam sur une valeur wParam définie par l’application qui sera utilisée pour identifier la liste. Définissez lParam sur le handle HIMAGELIST de la liste.
- Pour chaque bouton, définissez le membre iBitmap de la structure TBBUTTON du bouton sur MAKELONG(iIndex, iImageID). La valeur iImageID est l’ID de la liste d’images appropriée qui a été définie à l’étape 2. La valeur iIndex est l’index de l’image particulière dans cette liste.
- Ajoutez les boutons en envoyant au contrôle de barre d’outils un message TB_ADDBUTTONS.
Le fragment de code suivant montre comment ajouter cinq boutons à une barre d’outils, avec des images de trois listes d’images différentes. La prise en charge de plusieurs listes d’images est activée avec un message CCM_SETVERSION. Les listes d’images sont ensuite définies, et des ID compris entre 0 et 2 leur sont ensuite attribués. Des images des listes d’images sont affectées aux boutons comme suit :
- Le bouton 0 provient de la liste d’images 0 (ahim[0]) avec l’index 1.
- Le bouton 1 provient de la liste d’images 1 (ahim[1]) avec un index de 1.
- Le bouton 2 provient de la liste d’images 2 (ahim[2]) avec un index de 1.
- Le bouton 3 provient de la liste d’images 0 (ahim[0]) avec un index de 2.
- Le bouton 4 provient de la liste d’images 1 (ahim[1]) avec un index de 3.
Pour finir, les boutons sont ajoutés au contrôle de barre d’outils avec un message TB_ADDBUTTONS .
//Enable multiple image lists
SendMessage(hwndTB, CCM_SETVERSION, (WPARAM) 5, 0);
//Set the image lists and assign them IDs of 0-2
SendMessage(hwndTB, TB_SETIMAGELIST, 0, (LPARAM)ahiml[0]);
SendMessage(hwndTB, TB_SETIMAGELIST, 1, (LPARAM)ahiml[1]);
SendMessage(hwndTB, TB_SETIMAGELIST, 2, (LPARAM)ahiml[2]);
// Create the five buttons
TBBUTTON rgtb[5];
//... initialize the TBBUTTON structures as usual ...
//Assign images to each button
rgtb[0].iBitmap = MAKELONG(1, 0);
rgtb[1].iBitmap = MAKELONG(1, 1);
rgtb[2].iBitmap = MAKELONG(1, 2);
rgtb[3].iBitmap = MAKELONG(2, 0);
rgtb[4].iBitmap = MAKELONG(3, 1);
// Add the five buttons to the toolbar control
SendMessage(hwndTB, TB_ADDBUTTONS, 5, (LPARAM)(&rgtb);
Spécifications
Condition requise | Value |
---|---|
Client minimal pris en charge |
Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge |
Windows Server 2003 [applications de bureau uniquement] |
En-tête |
|