CWnd::ScrollWindowEx
Прокручивает содержимое клиентской области окна.
int ScrollWindowEx(
int dx,
int dy,
LPCRECT lpRectScroll,
LPCRECT lpRectClip,
CRgn* prgnUpdate,
LPRECT lpRectUpdate,
UINT flags
);
Параметры
dx
Определяет объем (в единицах устройства, горизонтальной прокрутки.Этот параметр должен иметь отрицательное значение, которое нужно прокрутить до левого.dy
Определяет объем (в единицах устройства, вертикальной прокрутки.Этот параметр должен иметь отрицательное значение, которое нужно прокрутить вверх.lpRectScroll
Указывает на RECT составляющие, указывающее часть клиентской области, которую необходимо выполнить.Если этот параметр NULL, то вся клиентскую область прокручена.lpRectClip
Указывает на RECT составляющие, определяющий прямоугольник отсечения для прокрутки.Эта структура имеет приоритет перед прямоугольником, заданным с lpRectScroll.Только биты в пределах этого прямоугольника прокручены.Биты вне данного прямоугольника не изменяются даже если они в прямоугольнике lpRectScroll.Если этот параметр NULL, отсечение не выполняется в прямоугольнике прокрутки.prgnUpdate
Определяет область, которая изменена, чтобы сохранить область станет недействительным при прокрутке.Этот параметр может быть NULL.lpRectUpdate
Указывает на RECT составляющие, которое обращается границы прямоугольника недействительным при прокрутке.Этот параметр может быть NULL.flags
Может иметь одно из следующих значений:SW_ERASE Определянный с SW_INVALIDATE, erases вновь становится недействительной область, отправляя сообщение WM_ERASEBKGND окна.
SW_INVALIDATE Делает недействительной указанную область prgnUpdate после прокрутки.
SW_SCROLLCHILDREN Прокручивает все дочерние окна, в которых пересекаются прямоугольник указанный в lpRectScroll количеством точек, определенных в dx и dy.Windows отправляет сообщение WM_MOVE ко всем дочерним окнам, которые пересекаются lpRectScroll, даже если они не перемещаются вместе.Курсор перемещен, когда дочернее окно прокручено и прямоугольник пересекается прямоугольник прокрутки курсора.
Возвращаемое значение
Возвращаемое значение SIMPLEREGION (прямоугольная область, недействительны) COMPLEXREGION (непрямоугольные недействительны область. перекрывающиеся прямоугольники) или недействительны области NULLREGION (нет), если функция успешно; в противном случае возвращаемое значение ERROR.
Заметки
Эта функция аналогична функции ScrollWindow, с некоторыми дополнительными функциями.
Если SW_INVALIDATE и SW_ERASE не указаны, то функцию-член ScrollWindowEx недействительным прокручивает область которой больше.Если любое из этих пометит установлено, ScrollWindowEx делает недействительным в этой области.Область не обновлена до тех пор, пока приложение не сможет вызвать функцию-член UpdateWindow, будет RedrawWindow вызова функции-члена (определение RDW_UPDATENOW или RDW_ERASENOW) или WM_PAINT извлекает сообщения из очереди приложения.
Если окно имеет стиль WS_CLIPCHILDREN, то возвращаемые области, определенные prgnUpdate и lpRectUpdate представляют полную площадь прокрученного окна, которое необходимо обновить, включая все области в окнах, которые нужно обновить.
Если пометить SW_SCROLLCHILDREN указан, то Windows неправильно обновляет экран, если часть дочернего окна прокручена.Части прокручиваемого дочернего окна, расположенную вне прямоугольника источника не будет стерта и не будет повторно перетаскиваются в его создания.Используйте функцию DeferWindowPos Windows для перемещения дочерние окна, которые не находятся внутри прямоугольника lpRectScroll полностью.Курсор перемещен если пометить SW_SCROLLCHILDREN задан и курсор прокрутки прямоугольник пересекается прямоугольник.
Предполагается, что все координаты ввода и вывода (для lpRectScroll, lpRectClip, lpRectUpdate и prgnUpdate) в клиентских координатах, независимо от того, имеет ли окно CS_OWNDC стиль класса или CS_CLASSDC.Используйте функции LPtoDP и DPtoLP Windows для преобразования в и из логических координат, если требуемый.
Требования
Header: afxwin.h