Метод 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 .

Замечания

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

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

Доступность

Сведения о специальных возможностях в изображениях кнопок на панели пальца см. в разделе "Примечания" в ThumbBarSetImageList.

Примеры

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

HRESULT UpdateThumbBarButton(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.
    THUMBBUTTON 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 (include Shobjidl.h)
Library Explorerframe.lib
DLL Explorerframe.dll

См. также

ITaskbarList

ITaskbarList2

ITaskbarList3

ITaskbarList3::ThumbBarSetImageList

ITaskbarList3::ThumbBarAddButtons

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