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


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

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

Синтаксис

HRESULT SetProgressState(
  [in] HWND    hwnd,
  [in] TBPFLAG tbpFlags
);

Параметры

[in] hwnd

Тип: HWND

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

[in] tbpFlags

Тип: TBPFLAG

Флаги, управляющие текущим состоянием кнопки хода выполнения. Укажите только один из следующих флагов: все состояния являются взаимоисключающими из всех остальных.

TBPF_NOPROGRESS (0x00000000)

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

TBPF_INDETERMINATE (0x00000001)

Индикатор хода выполнения не увеличивается в размере, а циклически выполняется по длине кнопки панели задач. Это указывает на действие, не указывая, какая доля хода выполнения завершена. Ход выполнения выполняется, но нет прогноза о том, сколько времени займет операция.

TBPF_NORMAL (0x00000002)

Индикатор хода выполнения увеличивается слева направо пропорционально предполагаемому объему завершенной операции. Это определенный индикатор хода выполнения; выполняется прогноз продолжительности операции.

TBPF_ERROR (0x00000004)

Индикатор хода выполнения становится красным, чтобы показать, что в одном из окон, транслирующих ход выполнения, произошла ошибка. Это определенное состояние. Если индикатор хода выполнения находится в неопределенном состоянии, он переключается на красный определенный индикатор общего процента, не указывающий на фактический ход выполнения.

TBPF_PAUSED (0x00000008)

Индикатор хода выполнения становится желтым, чтобы показать, что ход выполнения в настоящее время остановлен в одном из окон, но может быть возобновлен пользователем. Условие ошибки не существует, и ничто не препятствует продолжению хода выполнения. Это определенное состояние. Если индикатор хода выполнения находится в неопределенном состоянии, он переключается на желтый определенный индикатор общего процента, не указывающий на фактический ход выполнения.

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

Тип: HRESULT

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

Комментарии

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

Разработчики, привыкшие к существующему элементу управления индикатором выполнения , должны найти индикатор хода выполнения кнопки на панели задач, чтобы он был похожим как в концепции, так и в визуальных элементах. Здесь сама кнопка панели задач становится индикатором выполнения. Индикатор хода выполнения кнопки панели задач должен быть отражением более подробного индикатора выполнения в соответствующем окне. Это позволяет пользователю видеть особенности, такие как процентное число и оставшееся время, которые не могут отображаться на кнопке панели задач. Кроме того, поскольку кнопка панели задач может отображать ход выполнения только одного окна в группе, она позволяет пользователю проверка ход выполнения отдельных окон. Он также предоставляет пользователю сведения о ходе выполнения, когда кнопка панели задач не может, например в цветовой схеме с высокой контрастностью.

Обратите внимание, что индикатор выполнения кнопки панели задач не предназначен для использования с обычными периферийными действиями, такими как загрузка веб-страницы или печать документа. Этот тип хода выполнения должен по-прежнему отображаться в строке состояния окна.

Индикатор хода выполнения отображается между значком или текстом кнопки панели задач и фоном. Если для активной и неактивной кнопки панели задач отображается ход выполнения, заливка на соответствующих индикаторах выполнения будет такой, что активная кнопка по-прежнему очевидна для пользователя. Кроме того, функции кнопки, такие как отображение эскизов, продолжают работать в обычном режиме, когда кнопка используется для отображения хода выполнения.

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

Выбор индикатора хода выполнения для группы кнопкой панели задач

Кнопка панели задач может отображать индикатор хода выполнения только для одного окна за раз. Это относится к ситуации, когда кнопка панели задач представляет группу и несколько окон в ней транслируют сведения о ходе выполнения. В этом случае кнопка панели задач выбирает отображение хода выполнения в зависимости от приоритета состояния. Приоритет состояния показан в следующей таблице, а приоритет 1 — самый высокий.
Приоритет Состояние
1 TBPF_ERROR
2 TBPF_PAUSED
3 TBPF_NORMAL
4 TBPF_INDETERMINATE
 

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

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

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

  • Кнопка панели задач не представляет группу, а одно окно, которое она представляет, имеет TBPF_INDETERMINATE.
  • Кнопка панели задач представляет группу, только одно окно в ней транслирует сведения о ходе выполнения, и в этом окне задано TBPF_INDETERMINATE.
  • Кнопка панели задач представляет группу, несколько окон в ней транслируют сведения о ходе выполнения, и для всех этих окон задано TBPF_INDETERMINATE.

Индикатор хода выполнения может отображаться в следующих случаях:

  • Кнопка панели задач не представляет группу, а одно окно, которое она представляет, является трансляцией определенных сведений о ходе выполнения.
  • Кнопка панели задач представляет группу, только одно окно в ней транслирует сведения о ходе выполнения, а это окно транслирует определенные сведения о ходе выполнения.
  • Кнопка панели задач представляет группу, несколько окон в ней транслируют сведения о ходе выполнения, по крайней мере одно из них транслирует определенные сведения о ходе выполнения, и ни в одном окне не задано TBPF_ERROR или TBPF_PAUSED.

Обратите внимание, что вызов SetProgressValue переключит индикатор хода выполнения, который в настоящее время находится в неопределенном режиме (TBPF_INDETERMINATE), на обычный (определенный) дисплей и снимет флаг TBPF_INDETERMINATE .

Требования

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

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

ITaskbarList

ITaskbarList2

ITaskbarList3

ITaskbarList3::SetProgressValue

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