Mensaje de TB_SETIMAGELIST

Establece la lista de imágenes que usa la barra de herramientas para mostrar los botones que están en su estado predeterminado.

Parámetros

wParam

Versión 5.80. Índice de la lista. Si usa solo una lista de imágenes o una versión anterior de los controles comunes, establezca wParam en cero. Consulte comentarios para más detalles acerca del uso de listas de imágenes múltiples.

lParam

Identificador de la lista de imágenes que se va a establecer. Si este parámetro es NULL, no se muestran imágenes en los botones.

Valor devuelto

Devuelve el identificador de la lista de imágenes usada anteriormente para mostrar botones en su estado predeterminado, o NULL si no se estableció previamente ninguna lista de imágenes.

Comentarios

Nota:

La aplicación es responsable de liberar la lista de imágenes después de destruir la barra de herramientas.

El mensaje TB_SETIMAGELIST no se puede combinar con TB_ADDBITMAP. Tampoco se puede usar con barras de herramientas creadas con CreateToolbarEx, que llama a TB_ADDBITMAP internamente. Al crear una barra de herramientas con CreateToolbarEx o usar TB_ADDBITMAP para agregar imágenes, la barra de herramientas administra internamente la lista de imágenes. Intentar modificarlo con TB_SETIMAGELIST tiene consecuencias impredecibles.

Con la versión 5.80 o posterior de los controles comunes, las imágenes de botón no deben proceder de la misma lista de imágenes. Para usar varias listas de imágenes para las imágenes de botón de la barra de herramientas:

  1. Habilite varias listas de imágenes enviando el control de la barra de herramientas un mensaje de CCM_SETVERSION con wParam (el número de versión) establecido en 5.
  2. Para cada lista de imágenes que quiera usar, envíe el control de la barra de herramientas a un mensaje de TB_SETIMAGELIST. Establezca wParam en un valor de wParam definido por la aplicación que se usará para identificar la lista. Establezca lParam en el identificador HIMAGELIST de la lista.
  3. Para cada botón, establezca el miembro iBitmap de la estructuraTBBUTTON botón en MAKELONG(iIndex, iImageID). El valor de iImageID es el identificador de la lista de imágenes adecuada que se definió en el paso dos. El valor de iIndex es el índice de la imagen determinada dentro de esa lista.
  4. Agregue los botones enviando el control de la barra de herramientas a un mensaje TB_ADDBUTTONS.

El siguiente fragmento de código muestra cómo agregar cinco botones a una barra de herramientas, con imágenes de tres listas de imágenes diferentes. La compatibilidad con varias listas de imágenes está habilitada con un mensaje de CCM_SETVERSION. Las listas de imágenes se establecen y asignan identificadores de 0 a 2. A los botones se les asignan imágenes de las listas de imágenes de la siguiente manera:

  • El botón 0 procede de la lista de imágenes cero (ahim[0]) con el índice 1.
  • El botón 1 procede de la lista de imágenes uno (ahim[1]) con un índice de 1.
  • El botón 2 procede de la lista de imágenes dos (ahim[2]) con un índice de 1.
  • El botón 3 procede de la lista de imágenes cero (ahim[0]) con un índice de 2.
  • El botón 4 procede de la lista de imágenes uno (ahim[1]) con un índice de 3.

Por último, los botones se agregan al control de la barra de herramientas con un mensaje de 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);

Requisitos

Requisito Valor
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado
Commctrl.h

Consulte también

MAKELONG