Программирование в системе Windows2000, страница 5

Прокруткаокон

Если окно слишком мало, чтобы полностью отобразить объект данных, оно должно поддерживать прокрутку. Это дает возможность пользователю перемещать область просмотра окна для ознакомления с другими частями объекта данных. В приложении необходимо использовать линейку прокрутки (прямоугольный элемент управления с кнопками прокрутки), поле прокрутки (ползунок) и поле линейки прокрутки, как показано на рис. 1.1.

Окно может включать вертикальную линейку прокрутки, как показано на рис. 1.1, горизонтальную линейку прокрутки или ту и другую, в зависимости от размеров рассматриваемого объекта данных. Если объект данных имеет слишком большую ширину, применяться горизонтальная линейка прокрутки. Если он имеет слишком большyю высоту, применяется вертикальная линейка прокрутки. Если для просмотра объекта данных одна из линеек прокрутки не требуется, ее не следует включать. Однако, если размеры окна, имеющего линейку прокрутки, изменились так, что линейка прокрутки больше не требуется, она должна по-прежнему отображаться. Благодаря этому сохраняется единообразие внешнего вида.

В обоих концах линейки прокрутки присутствуют кнопки прокрутки со стрелками, направленными в ту сторону, куда будет перемещаться окно или область просмотра.

Когда пользователь нажимает на кнопку со стрелкой, окно перемещается в направлении, указанном стрелкой, на одну единицу длины прокрутки. Единица длины прокрутки представляет собой определяемую приложением единицу измерения, которая соответствует объекту данных, отображаемому в окне. Например, при выборе кнопки прокрутки текстовый файл должен прокручиваться каждый раз на одну строку, а графическое изображение должно передвигаться на небольшое число пикселей. Единица длины прокрутки должна оставаться одинаковой во всем диапазоне прокрутки. Если окно нельзя больше прокручивать в каком-либо направлении, соответствующая этому направлению кнопка прокрутки должна быть запрещена.

По линейке прокрутки перемещается поле прокрутки (или ползунок) для указания ориентировочного положения в объекте данных окна, отображаемого в настоящее время. Например, если в окне в настоящее время отображается начало объекта данных, поле прокрутки находится в верхней части линейки прокрутки. Если в окне отображается средняя часть объекта данных, поле прокрутки находится в середине линейки прокрутки. Поле прокрутки в Windows 95 изменилось по сравнению с предыдущими версиями Windows. Теперь его размеры устанавливаются пропорционально той части объекта данных, которая отображается в окне, и общему размеру объекта данных. Например, если окно может отобразить все содержимое объекта данных, размер поля прокрутки устанавливается во всю длину линейки прокрутки. Если окно может отобразить половину объекта данных, размер поля прокрутки составляет половину линейки прокрутки. Поле прокрутки выполняет также еще одно назначение: пользователь может перетаскивать его для перемещения в соответствующее место объекта данных.

Важной частью интерфейса прокрутки является также поле линейки. Когда пользователь щелкает на поле линейки, окно прокручивается на величину, эквивалентную размеру видимой области. Направление прокрутки зависит от того, с какой стороны от ползунка был выполнен щелчок на поле линейки. Например, если пользователь щелкнул на поле линейки под ползунком вертикальной линейки прокрутки, окно прокручивается вниз. При прокрутке с помощью поля линейки в приложении необходимо оставить видимой небольшую часть объекта данных с предыдущего экрана. Например, если в окне отображается текстовый файл и пользователь выполняет прокрутку вниз, строка, которая была видна в нижней части окна, после прокрутки должна быть видна в верхней части окна.

Все описанные выше методы прокрутки предусматривали прокрутку окна, явно выполняемую пользователем, но иногда прокрутка окна должна выполняться автоматически. Ниже перечислены наиболее распространенные ситуации, когда прокрутка окна должна выполняться автоматически.