Поделиться через


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

См. также

Ссылки

Класс CWnd

Диаграмма иерархии

CWnd::RedrawWindow

CDC::ScrollDC

CWnd::ScrollWindow

CWnd::UpdateWindow

DeferWindowPos

ScrollWindowEx