Окт 14

Полосы прокрутки и вывод текста

При выводе текста может возникнуть ситуация, когда в клиентской области окна недостаточно места для его размещения. Например, длина строк может оказаться больше ширины окна, а количество строк слишком большим, чтобы поместиться в окне с данной высотой. Полосы прокрутки {scroll bars) являются самым удобным решением этой проблемы. Они просты в использовании и обеспечивают удобный просмотр информации.
Следует различать два вида полос прокрутки: полоса прокрутки окна; полоса прокрутки — элемент управления типа Scroll bar.
Второй вид полос прокрутки рассматривается в главе 7.
Полосы прокрутки окна, называемые также стандартными полосами прокрутки, размещаются вдоль правой и нижней рамок окна, как показано на рис. 2.35. Чтобы они появились, достаточно при вызове функции CreateWindow указать флаги WS_VSCROLL (вертикальная прокрутка) и WS_HSCROLL (горизонтальная прокрутка) в параметре dwStyle. Вертикальная полоса прокрутки позволяет пользователю просматривать информацию в окне, прокручивая ее вниз или вверх. Горизонтальная полоса прокрутки позволяет перемещать информацию вправо или влево. Терминология полос прокрутки, связанная с направлениями прокрутки, ориентирована на пользователя. Фактически программа перемещает документ в окне в противоположном направлении.
На рисунке поясняется также рекомендуемое использование вертикальной полосы прокрутки для просмотра текста. Текущее положение информации в окне относительно документа в целом отображается положением движка (thumb). Кроме щелчков мышью в указанных местах пользователь может также при помощи мыши переместить движок в любое необходимое положение. Использование горизонтальной полосы прокрутки осуществляется аналогичным образом.
Следует помнить, что, когда у окна появляются полосы прокрутки, клиентская область окна не включает в себя пространство, занятое полосами прокрутки.
Windows обеспечивает всю логику работы мыши с полосами прокрутки. Однако у полос прокрутки нет интерфейса клавиатуры. Если необходимо дублировать некоторые функции полос прокрутки клавишами управления курсором, то следует реализовать эту логику самостоятельно.