Поделиться через


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

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

Синтаксис

HRESULT ThumbBarUpdateButtons(
  [in] HWND          hwnd,
  [in] UINT          cButtons,
  [in] LPTHUMBBUTTON pButton
);

Параметры

[in] hwnd

Тип: HWND

Дескриптор окна, эскиз которого содержит панель инструментов.

[in] cButtons

Тип: UINT

Количество кнопок, определенных в массиве, на которые указывает pButton. Максимально допустимое количество кнопок — 7. Этот массив содержит только структуры, представляющие существующие обновляемые кнопки.

[in] pButton

Тип: LPTHUMBBUTTON

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

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

Тип: HRESULT

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

Комментарии

Поскольку существует ограниченный объем пространства для отображения эскизов, а также постоянно меняющееся количество отображаемых эскизов, приложениям не гарантируется определенный размер панели инструментов. Если место на экране мало, при необходимости кнопки на панели инструментов усекаются справа налево. Таким образом, приложение должно приоритизировать команды, связанные с его кнопками, чтобы гарантировать, что команды с наивысшим приоритетом находятся слева и, следовательно, с меньшей вероятностью будут усечены.

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

Примеры

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

HRESULT UpdateThumbarButton(HWND hwnd)
{
    // Define a single structure for the button to update. The ID is that
    // of an existing button, so the other information (bitmap index and 
    // tooltip) overwrites the existing values, updating the button.
    THUMBBUTON thbButton;
    thbButton.dwMask = THB_BITMAP | THB_TOOLTIP;
    thbButtons[0].iId = 1;
    thbButton.iBitmap = 3;
    thbButton.pszTip = TEXT("Different Text");
    
    // Create an instance of ITaskbarList3
    ITaskBarList3 *ptbl;
    HRESULT hr = CoCreateInstance(CLSID_TaskbarList, 
                                  NULL, 
                                  CLSCTX_INPROC_SERVER, 
                                  IID_PPV_ARGS(&ptbl);

    if (SUCCEEDED(hr))
    {
        // Update the toolbar. In this case, only the single button is updated.
        hr = ptbl->ThumbBarUpdateButtons(hwnd, 1, &thbButton);
        ptbl->Release();
    }
    return hr;
}

Требования

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

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

ITaskbarList

ITaskbarList2

ITaskbarList3

ITaskbarList3::ThumbBarAddButtons

ITaskbarList3::ThumbBarSetImageList

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