Сообщения для органа управления 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 должен быть равен нулю.