Метод ITaskbarList3::ThumbBarSetImageList (shobjidl_core.h)

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

Синтаксис

HRESULT ThumbBarSetImageList(
  [in] HWND       hwnd,
  [in] HIMAGELIST himl
);

Параметры

[in] hwnd

Тип: HWND

Дескриптор окна, представление эскиза которого содержит панель инструментов для обновления. Этот дескриптор должен принадлежать вызывающей процедуре.

[in] himl

Тип: HIMAGELIST

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

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

Тип: HRESULT

Если этот метод выполнен успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Замечания

Приложения должны предоставлять следующие изображения кнопок:

  • Кнопка в активном состоянии по умолчанию.
  • Изображения, подходящие для использования с отображением точек (точек на дюйм).

Изображения должны быть 32-разрядными и измерениями GetSystemMetrics(SM_CXICON) x GetSystemMetrics(SM_CYICON). Сама панель инструментов предоставляет визуальные элементы для состояний нажатия, отключения и наведения указателя мыши.

Доступность

Изображения кнопок, предоставленные в структуре THUMBBUTTON , индексированные из списка изображений, можно использовать в различных сценариях персонализации пользователей. Типичным примером является светлый и темный цветовые режимы и темы контрастности для специальных возможностей. Выберите ресурсы, которые остаются визуально понятными во всех этих контекстах.

Это можно сделать двумя способами:

  • Зарегистрируйтесь для событий изменения темы (см. раздел "Поддержка темных и светлых тем" в приложениях Win32) и кнопки обновления при изменении тем.
  • Используйте ресурсы со встроенным контрастом, например глифы с твердыми белыми заливками и твердыми черными контурами.

Примеры

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


HRESULT AddThumbBarButtons(HWND hwnd, HIMAGELIST himl, HIMAGELIST himlHot)
{
    // Define an array of two buttons. These buttons provide images through an 
    // image list and also provide tooltips.
    DWORD dwMask = THB_BITMAP | THB_TOOLTIP | THB_FLAGS;
    
    THUMBBUTTON thbButtons[2];
    thbButtons[0].dwMask = dwMask;
    thbButtons[0].iId = 0;
    thbButtons[0].iBitmap = 0;
    thbButtons[0].pszTip = TEXT("Button 1");
    thbButtons[0].dwFlags = THBF_DISMISSONCLICK;

    dwMask = THB_BITMAP | THB_TOOLTIP;
    thbButtons[1].dwMask = dwMask;
    thbButtons[1].iId = 1;
    thbButtons[1].iBitmap = 1;
    thbButtons[1].pszTip = TEXT("Button 2");
    
    // Create an instance of ITaskbarList3
    ITaskBarList3 *ptbl;
    HRESULT hr = CoCreateInstance(CLSID_TaskbarList, 
                                  NULL, 
                                  CLSCTX_INPROC_SERVER, 
                                  IID_PPV_ARGS(&ptbl);

    if (SUCCEEDED(hr))
    {
        // Declare the image list that contains the button images.
        hr = ptbl->ThumbBarSetImageList(hwnd, himl);
        
        if (SUCCEEDED(hr))
        {
            // Attach the toolbar to the thumbnail.
            hr = ptbl->ThumbBarAddButtons(hwnd, ARRAYSIZE(thbButtons), &thbButtons);
        }
        ptbl->Release();
    }
    return hr;
}

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 7 [только настольные приложения]
минимальный поддерживаемый сервер Windows Server 2008 R2 [только классические приложения]
целевая платформа Windows
Header shobjidl_core.h (include Shobjidl.h)
Library Explorerframe.lib
DLL Explorerframe.dll

См. также

ITaskbarList

ITaskbarList2

ITaskbarList3

ITaskbarList3::ThumbBarAddButtons

ITaskbarList3::ThumbBarUpdateButtons

Расширения панели задач