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 notes.

lParam

Gérez la liste d’images à définir. Si ce paramètre a la valeur 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é pour afficher les boutons dans leur état appuyé, ou NULL si aucune telle liste d’images n’a été précédemment définie.

Notes

Notes

Votre application est chargée de libérer la liste d’images après la destruction de la barre d’outils.

Le message TB_SETPRESSEDIMAGELIST ne peut pas être combiné avec TB_ADDBITMAP. Il ne peut pas également ê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 (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 affectées d’ID de 0 à 2. Les boutons sont attribués aux images des listes d’images comme suit :

  • Le bouton 0 provient de la liste d’images zéro (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 zéro (ahim[0]) avec un index de 2.
  • Le bouton 4 provient de la liste d’images 1 (ahim[1]) avec un index de 3.

Enfin, 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);

Configuration requise

Condition requise Valeur
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