Создание элемента управления ProgressBar
Установщик Windows содержит функции для отображения индикатора хода выполнения в диалоговом окне отображения действия. Элемент управления ProgressBar графически представляет установку отдельных компонентов и сообщает общее время, затраченное относительно оставшегося времени или приблизительного общего времени, оставшегося до завершения установки.
Для определения общего времени, ожидаемого для установки, установщик отслеживает суммарное количество ожидаемых каждым действием прогресс-меток при создании скрипта выполнения. После завершения создания скрипта сохраняется итог хода выполнения и начинается установка.
Сообщения о ходе выполнения, которые уточняют количество пройденных шагов процесса, отправляются в активный обработчик сообщений по мере выполнения каждого действия в скрипте. На каждом этапе уведомления о ходе установки, установщик транслирует SetProgress ControlEvent в активное диалоговое окно. Последовательность пользовательского интерфейса должна быть создана для создания диалогового окна отображения действия во время выполнения скрипта, чтобы получать сообщения SetProgress ControlEvent от установщика.
Когда диалоговое окно отображения действия получает элемент SetProgress ControlEvent, он проверяет таблицу EventMapping для всех элементов управления, подписывающихся на ControlEvent. Элемент управления ProgressBar в диалоговом окне отображения действия связан с атрибутом элемента управления Progress, указанным в столбце "Атрибуты". Атрибут Progress Control указывает, что элемент управления ProgressBar будет получать значения "ticksSoFar" и "totalTicks" вместе с событием управления SetProgress. Элемент управления индикатора хода выполнения использует эти сведения для продвижения графического индикатора слева направо для установки и справа налево для операции отката .
Кроме того, установщик передает TimeRemaining ControlEvent с каждым сообщением о ходе выполнения. Оставшееся общее время для установки определяется путем вычисления скорости выполнения, которое представляет собой общее число прошедших тиков, деленное на общее время с начала установки. Общее количество оставшихся тиков, деленное на скорость выполнения задачи, дает приблизительно оставшееся время.
Когда диалоговое окно действия получает событие TimeRemaining ControlEvent, оно снова ищет в таблице EventMapping все элементы управления, которые подписаны. Чтобы отобразить оставшееся время, элемент управления Text необходимо подписать на событие управления TimeRemaining ControlEvent с атрибутом управления TimeRemaining, указанным в столбце "Атрибуты".
Подписной элемент управления Text запрашивает таблицу UIText для параметризованной строки шаблона с именем "TimeRemaining". Эта строка имеет два параметра: [1] в минутах и [2] в секундах. Элемент управления Text преобразует каждое значение в минуты и секунды, вычисляет строку шаблона TimeRemaining и обновляет текстовый элемент управления новыми сведениями.
Если для уровня отображения пользовательского интерфейса задано значение "Базовый" или "Нижний", установщик отображает диалоговое окно по умолчанию, содержащее строку выполнения и текстовое поле TimeRemaining. Дополнительные сведения см. в уровнях пользовательского интерфейса.