Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы программирования для информатиков и инженеров. Часть 2 Прикладное программирование в Windows.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
603 Кб
Скачать
☆

11.3. Работа с ползунком

 

Один из самых интересных с точки зрения внешнего вида общих элементов управления – это ползунок (trackbar, иногда используется также термин slider control). Он имеет вид ползункового регулятора, используемого в различной электронной аппаратуре, в частности в стереосистемах. Ползунок состоит из указателя, движуще­гося вдоль шкалы. И хотя он выглядит иначе, чем линейка прокрутки, программа управляет им точно так же.

Применение ползунков очень эффективно в тех случаях, когда программа моде­лирует реальное физическое устройство. Например, если программа управляет графическим эквалайзером, ползунки идеально подходят для представления процесса регулировки частоты.

Для создания ползунка используется функция CreateWindow() либо CreateWindowEx(). Функция CreateWindowEx() отличается тем, что позволяет задать дополни­тельные значения стиля для создаваемого окна. В приведенном в этой главе примере программы создания ползунка дополнительные стили окна не требуются, но они могут оказаться необходимыми в реальных приложениях. Имя класса ползунка определяется макросом TRACKBAR_CLASS.

 

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

 

Таблица 11.3

Значения стилей для ползунка

 

№

Стиль

Эффект

1

TBS_AUTOTICKS

Шкала ползунка отображается автоматически

2

TBS_HORZ

Ползунок отображается горизонтально (по умолчанию)

3

TBS_VERT

 

4

TBS_BOTTOM

Шкала располагается над горизонтальным ползунком (по умолчанию)

5

TBS_TOP

Шкала располагается под горизонтальным ползунком

6

TBS_LEFT

Шкала располагается слева от вертикального ползунка

7

TBS_RIGHT

Шкала располагается справа от вертикального ползунка

8

TBS_BOTH

Шкала располагается с двух сторон от ползунка

 

Чаще всего исполь­зуется стиль TBS_AUTOTICKS, поскольку он определяет автоматическое отображе­ние шкалы ползунка.

 

Передача сообщений ползунку. Сообщения ползунку посылаются с помощью функции SendMessage(), как и другим общим элементам управления, которые уже рассматривались. Перечень сообщений, которые можно посылать ползунку, приводится в таблице 11.4. Чаще других используются сообщения TBM_SETRANGE иTBM_SETPOS; с их помощью можно установить диапазон значений для ползунка и его текущую позицию. Однако эти параметры нельзя установить, если ползунок создан при помощи функции CreateWindow().

 

Таблица 11.4

Перечень сообщений, которые можно посылать ползунку

 

№

Сообщение

Действие

1

ТВМ_GETPOS

Получение текущей позиции ползунка.

wParam должен быть равен 0.

lParam должен быть равен 0

2

TBM_GETRANGEMAX

Получение верхней границы диапазона ползунка.

wParam должен быть равен 0.

lParam должен быть равен 0

3

TBM_GETRANGEMIN

Получение нижней границы диапазона ползунка. wParam должен быть равен 0.

lParam должен быть равен 0

4

ТВМ SETPOS

Установка текущей позиции ползунка.

wParam должен быть не равен 0, если нужно перерисовать ползунок.

lParam задает новую позицию ползунка

5

ТВМ_SETRANGE

Установка нового диапазона значений для ползунка.

wParam должен быть не равен 0, если ползунок нужно перерисовать.

lParam содержит значения нового диапазона: значение верхней границы диапазона будет помещено в младшее слово, а нижней – в старшее

6

ТВМ_SETRANGEMAX

Установка верхнего предела диапазона значений ползунка.

wParam должен быть не равен 0, если ползунок нужно перерисовать.

lParam содержит новое значение верхнего предела диа­пазона значений

7

ТВМ_SETRANGEMIN

Установка нижнего предела диапазона значений ползунка.

wParam должен быть не равен 0, если нужно перерисовать ползунок.

lParam содержит новое значение нижнего предела диа­пазона значений

 

Обработка нотификационных сообщении ползунка. При воздействии на ползунок он посылает своему родительскому окну сообщение WM_HSCROLL. Значение, определяющее характер воздействия, содержится в млад­шем слове параметра wParam. Это значение называется нотификационным сообще­нием. Дескриптор окна ползунка, направившего сообщение, содержится в lParam. В таблице 11.5 приведены некоторые наиболее часто используемые нотификационные сообщения ползунка.

 

Таблица 11.5