Линейкипрокрутки
Окно в приложении может отображать объект данных (документ, графическое изображение), превышающий по размерам клиентскую область окна. Если окно имеет линейки прокрутки, пользователь может прокручивать объект данных в клиентской области для просмотра всего документа или графического изображения. Приложение должно включать линейки прокрутки в окне, если информационное наполнение клиентской области выходит за пределы размеров клиентской области окна.
Основные сведения о линейках прокрутки
Элементы управления линейкой прокрутки представляют собой дочерние окна. Первоначально линейки прокрутки создаются с помощью функции CreateWindow, описанной в главе 3. После их создания линейки прокрутки могут быть размещены в клиентской области программы либо добавлены как часть рамки окна для прокрутки клиентской области. Линейки прокрутки, размещенные в клиентской области, называются элементами управления ползунком или шкалой. Элементы управления шкалой позволяют пользователю вводить ориентировочные данные или показывать в приложении приблизительные значения результатов. Элементы управления шкалой являются частью общих элементов управления (Common Controls), предусмотренных в Windows 98 и Windows 2000. На рис. 10.1 показаны разные типы линеек прокрутки и шкал. На этом рисунке обозначены разные части линейки прокрутки.
Линейки прокрутки подключаются к рамке окна, когда элемент управления линейкой прокрутки становится видимым. Функция ShowScrollBarприменяется для линеек прокрутки таким же образом, как функция ShowWindowдля окон других типов. Разница между этими функциями состоит в том, что функция ShowScrollBarподключает линейки прокрутки к рамке окна, если указан стиль SB_HORZили SB_VERT. Система Windows автоматически определяет ширину линейки прокрутки по размерам клиентской области, поэтому вывод информации в клиентской области не приводит к перекрытию линеек прокрутки. Еще одним способом подключения линейки прокрутки к рамке окна является создание окна с использованием одного или обоих стилей WS_HSCROLLи WS_VSCROLL.
Линейки прокрутки подключаются автоматически к спискам и полям со списком, если список элементов превышает размер окна списка. Линейки прокрутки подключаются также к элементам управления редактированием. Однострочные элементы управления редактированием позволяют воспользоваться только горизонтальной линейкой прокрутки, а многострочные — позволяют применять как вертикальные, так и горизонтальные линейки прокрутки. Элементы управления редактированием представляют собой просто небольшие окна, поэтому при их создании достаточно добавить стили WS_HSCROLLи/или WSJVSCROLL.
Позиция и диапазон линейки прокрутки
При создании линейки прокрутки диапазон значений составляет от 0 до 100. В большинстве случаев в приложении можно изменить этот диапазон для обозначения размеров документа или графического изображения. Позиция ползунка (поля прокрутки) представляет собой значение в диапазоне, где находится поле прокрутки. Например, если диапазон составляет от 0 до 100 и ползунок имеет позицию 50, то поле прокрутки будет находиться посередине между двумя концами элемента управления. Линейка прокрутки обладает еще одним свойством — способностью устанавливать размер страницы для линейки прокрутки. Размер страницы представляет собой число приращений в диапазоне прокрутки, которое может быть отображено одновременно. Если диапазон составляет от 0 до 100 и размер страницы установлен равным 50, то поле прокрутки будет иметь размер равный половине длины линейки прокрутки. На рис. 10.2 показано, как это выглядит. Для установки и выборки диапазона, позиции ползунка и размера страницы линейки прокрутки применяются функции SetScroIIInfoи GetScrolIInfo.
Сообщения линейки прокрутки
Когда пользователь щелкает на разных частях линейки прокрутки, система Windows отправляет сообщения WM_HSCROLLили WM_VSCROLL, в зависимости от ориентации линейки прокрутки. Младшее слово параметра wParamсообщает, где находился на линейке прокрутки курсор мыши, когда пользователь щелкнул кнопкой мыши. На рис. 10.3 показаны сообщения, связанные с каждой частью линейки прокрутки. Когда пользователь отпускает кнопку мыши, выполнив какое-либо действие на линейке прокрутки, Windows посылает сообщение SB_ENDSCROLLИсключением из этого правила являются действия, связанные с перемещением пользователем поля прокрутки. В
этом случае, после освобождения кнопки мыши, система вырабатывает сообщение SBTHUMBPOSITION.
Описанияфункцийлинейкипрокрутки
В табл. 10.1 приведены функции линейки прокрутки. За таблицей следует их подробное описание.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.