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