Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Операционная система Windows 95 для программиста

© Александр Фролов, Григорий Фролов
Том 22, М.: Диалог-МИФИ, 1993, 271 стр.

[Назад] [Содеожание] [Дальше]

7.2. Орган управления Progressbar

Орган управления Progressbar ничем не управляет, а служит только для отображения как линейный индикатор (рис. 7.5).

Рис. 7.5. Орган управления Progressbar

Он очень прост в использовании, так как не посылает извещений и воспринимает небольшое количество сообщений.

Создание органа управления Progressbar

Так же как и Trackbar, вы можете создать орган управления Progressbar при помощи функции CreateWindowEx , указав ей класс окна PROGRESS_CLASS .

Кроме того, вы можете использовать Progressbar в диалоговых панелях аналогично органу управления Trackbar. Для того чтобы в палитре органов управления редактора диалоговых панелей системы разработки Microsoft Visual C++ версии 2.0 появилась пиктограмма Progressbar, вы должны внести описанные ранее изменения в регистрационную базу данных.

Для органа управления Progressbar при инициализации необходимо задать диапазон изменения значений и начальное значение (в пределах от 0 до 65535).

Сообщения для органа управления Progressbar

Для органа управления Progressbar определены пять сообщений:

Сообщение Описание
PBM_DELTAPOS Продвижение заполняющей полосы в окне индикатора на заданное расстояние, определенное сообщением PBM_SETSTEP
PBM_SETPOS Установка текущего положения заполняющей полосы и перерисовка индикатора
PBM_SETRANGE Установка минимальной и максимальной позиции для органа управления Progressbar
PBM_SETSTEP Установка шага продвижения при поступлении сообщения PBM_STEPIT (по умолчанию шаг равен 10)
PBM_STEPIT Продвижение заполняющей полосы в окне индикатора на величину, определенную сообщением PBM_SETSTEP

При инициализации необходимо установить диапазон изменений значений и шаг продвижения.

Первая задача решается с помощью сообщения PBM_SETRANGE:

SendMessage(hProgressBar, PBM_SETRANGE, 0, 
  MAKELPARAM(0, nTrackCnt));

Параметр wParam этого сообщения должен быть равен нулю. Значение MAKELPARAM(min, max), записанное в lParam, определяет минимальное min и максимальное max значения позиции для органа управления Progressbar.

Шаг продвижения устанавливается в параметре wParam сообщения PBM_SETSTEP (параметр lParam должен быть равен нулю):

SendMessage(hProgressBar, PBM_SETSTEP, 1, 0);

Если вам нужно установить новое текущее положение заполняющей полосы, это можно сделать при помощи сообщения PBM_SETPOS, указав положение в параметре wParam:

SendMessage(hProgressBar, PBM_SETPOS, nCurTrack, 0);

При этом параметр lParam должен быть равен нулю.

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

SendMessage(hProgressBar, PBM_STEPIT, 0, 0);

Если необходимо продвинуть полосу на заданное расстояние, используйте сообщение PBM_DELTAPOS:

SendMessage(hProgressBar, PBM_DELTAPOS, nDelta, 0);

Расстояние должно быть указано в параметре wParam. Параметр lParam должен быть равен нулю.

[Назад] [Содеожание] [Дальше]