Линейки прокрутки. Основные сведения о линейках прокрутки, страница 4

Си.    \locbl-sources\chaplO\10-02.txt

ScroilWindowEx                                • Windows 98   • Windows 2000

Описание

Функция ScroilWindowEx выполняет прокрутку содержимого клиентской области указанного окна. Функция ScroilWindowEx аналогична функции ScrollDC, за исключением того, что ScroilWindowEx работает с дескриптором окна, a ScrollDC — с контекстом устройства (DC).

Синтаксис

int ScrollWindowEx( HWND hWnd, int dx, int dy, CONST RECT* IprcScroll, CONST RECT* IprcClip, HRGN HrgnUpdate, LPRECT IprcUpdate, UINT uScroll)

Параметры

hWnd

HWND. Дескриптор окна, в клиентской области которого должна быть выполнена прокрутка.

dx

int. Величина горизонтальной прокрутки в единицах длины устройства. Чтобы была выполнена прокрутка влево, этот параметр должен иметь отрицательное значение

dy

int. Величина вертикальной прокрутки в единицах длины устройства. Чтобы была выполнена прокрутка вверх, этот параметр должен иметь отрицательное значение.

IprcScroll

CONST RECT*. Указатель на структуру RECT, определяющую часть клиентской области, в которой должна быть выполнена прокрутка. Если этот параметр — NULL, будет выполнена прокрутка всей клиентской области.

IprcClip

CONST RECT*. Указатель на структуру RECT, которая содержит координаты прямоугольной области отсечения. Выполняется прокрутка только области, находящейся внутри прямоугольной области отсечения.

hrgn Update

HRGN. Область, раскрытая в процессе прокрутки. Эту область определяет функция ScrollDC; она может не быть прямоугольной. Значение этого параметра может быть установлено в NULL.

Iprc Update

LPRECT. Указатель на структуру RECT, которая принимает координаты прямоугольной области, ограничивающей прокручиваемую область обновления. Это — самая большая прямоугольная область, в клиентских координатах, которая требует повторного вывода. Значение этого параметра может быть установлено в NULL.

uScroll

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

Возвращаемое значение

int. SIMPLEREGION (недействительной объявлена прямоугольная область), COMPLEXREGION (недействительной объявлена непрямоугольная область; перекрывающиеся прямоугольные области) или NULLREGION (ни одна область не объявлена недействительной). В ином случае возвращаемое значение — ERROR

Таблица 10.8. ЗначенияпараметраuScroll функцииScroilWindowEx

Значение

Описание

SW_ERASE

Если указан также флажок SW_INVALIDATE, стереть область, объявленную недействительной.

SWJNVALIDATE

Объявить недействительной область, показанную после прокрутки.

SW_SCROLLCHILDREN

Выполнить прокрутку всех дочерних окон, которые пересекают прямоугольную область, указанную параметром IprcScroll. В дочерних окнах выполняется прокрутка на число пикселей, указанных параметрами dx и dy. Windows посылает сообщения WM_MOVE всем дочерним окнам, которые пересекают прямоугольную область IprcScroll, даже если они не двигались.

SW_SMOOTHSCROLL

Выполнить прокрутку с применением плавной прокрутки. Для указания продолжительности плавной прокрутки (в миллисекундах) служит часть HIWORD параметра uScroll.

Включаемый файл

winuser.h

См. также

ScrollDC, DeferWindowPos

Соответствуют

те сообщения

WM_VSCROLL, WM_HSCROLL, WM_MOVE, WM_PAINT

Пример

Следующий пример аналогичен приведенному в описании функции SetScrollInfo, но в нем применяется дополнительная логика прокрутки. Когда пользователь выбирает пункт меню Test!, к списку добавляется строка. Когда пользователь выбирает стрелку вверх или стрелку вниз на линейке прокрутки, линейка прокрутки прокручивается за один раз на одну строку. На рис. 10.6 показан список из десяти элементов, в котором выполнена прокрутка к последнему элементу:

См.    \lpcal-eources\chaplO\10-03.txt