сообщение ТБ_SETIMAGELIST

Задает список изображений, используемый на панели инструментов для отображения кнопок, которые находятся в состоянии по умолчанию.

Параметры

wParam

Версия 5.80. Индекс списка. Если вы используете только один список изображений или более раннюю версию общих элементов управления, задайте для wParam значение нулю. Дополнительные сведения об использовании нескольких списков изображений см. в примечаниях.

lParam

Обработка списка изображений для задания. Если этот параметр имеет значение NULL, изображения не отображаются на кнопках.

Возвращаемое значение

Возвращает дескриптор списка изображений, который ранее использовался для отображения кнопок в состоянии по умолчанию или NULL , если ранее список изображений не был задан.

Замечания

Примечание.

Ваше приложение отвечает за освобождение списка изображений после уничтожения панели инструментов.

Сообщение ТБ_SETIMAGELIST нельзя объединить с ТБ_ADDBITMAP. Его также нельзя использовать с панелями инструментов, созданными с помощью CreateToolbarEx, которая вызывает ТБ_ADDBITMAP внутренне. При создании панели инструментов с помощью CreateToolbarEx или с помощью ТБ_ADDBITMAP для добавления изображений панель инструментов управляет списком изображений внутренне. Попытка изменить его с помощью ТБ_SETIMAGELIST имеет непредсказуемые последствия.

В версии 5.80 или более поздней версии распространенных элементов управления изображения кнопки не должны поступать из одного списка изображений. Чтобы использовать несколько списков изображений для изображений на панели инструментов, выполните приведенные ниже действия.

  1. Включите несколько списков изображений, отправив элемент управления CCM_SETVERSION сообщение с wParam (номер версии), равным 5.
  2. Для каждого списка изображений, который вы хотите использовать, отправьте элемент управления панелью инструментов ТБ_SETIMAGELIST сообщение. Задайте для параметра wParam значение wParam, определяемое приложением, которое будет использоваться для идентификации списка. Установите lParam в дескриптор HIMAGELIST списка.
  3. Для каждой кнопки задайте для элемента iBitmap структуры ТБ BUTTON кнопки значение MAKELONG(iIndex, iImageID). Значение iImageID — это идентификатор соответствующего списка изображений, который был определен на шаге два. Значение iIndex — это индекс конкретного изображения в этом списке.
  4. Добавьте кнопки, отправив элемент управления панелью инструментов ТБ_ADDBUTTONS сообщение.

В следующем фрагменте кода показано, как добавить пять кнопок на панель инструментов с изображениями из трех разных списков изображений. Поддержка нескольких списков изображений включена с CCM_SETVERSION сообщением. Затем списки изображений задаются и назначаются идентификаторы 0-2. Кнопки назначаются из списков изображений следующим образом:

  • Кнопка 0 из списка изображений ноль (ahim[0]) с индексом 1.
  • Кнопка 1 из списка изображений (ahim[1]) с индексом 1.
  • Кнопка 2 из списка изображений два (ahim[2]) с индексом 1.
  • Кнопка 3 из списка изображений ноль (ahim[0]) с индексом 2.
  • Кнопка 4 из списка изображений (ahim[1]) с индексом 3.

Наконец, кнопки добавляются в элемент управления панели инструментов с сообщением ТБ_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);

Requirements

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Верхний колонтитул
Commctrl.h

См. также

MAKELONG