сообщение TB_SETPRESSEDIMAGELIST

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

Параметры

wParam

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

lParam

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

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

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

Remarks

Примечание

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

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

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

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

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

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

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

Требования

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

См. также раздел

Ссылки

TB_GETPRESSEDIMAGELIST

Другие ресурсы

MAKELONG