Partager via


Message TB_SETPRESSEDIMAGELIST

Définit la liste d’images utilisée par la barre d’outils pour afficher les boutons qui sont dans un état appuyé.

Paramètres

wParam

Index de la liste d’images. Si vous utilisez une seule liste d’images, définissez ce paramètre 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 appuyé, 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_SETPRESSEDIMAGELIST 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_SETPRESSEDIMAGELIST a des conséquences imprévisibles.

Les images de bouton ne doivent pas provenir de la même liste d’images. Pour utiliser plusieurs listes d’images pour vos images de bouton de barre d’outils :

  1. 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.
  2. Pour chaque liste d’images que vous souhaitez utiliser, envoyez au contrôle de barre d’outils un message TB_SETPRESSEDIMAGELIST. 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.
  3. 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.
  4. 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_SETPRESSEDIMAGELIST, 0, (LPARAM)ahiml[0]);
    SendMessage(hwndTB, TB_SETPRESSEDIMAGELIST, 1, (LPARAM)ahiml[1]);
    SendMessage(hwndTB, TB_SETPRESSEDIMAGELIST, 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 2008 [applications de bureau uniquement]
En-tête
Commctrl.h

Voir aussi

Référence

TB_GETPRESSEDIMAGELIST

Autres ressources

MAKELONG