Операционная система 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_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 должен быть равен нулю. |