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,清除最近无效的区域通过发送 WM_ERASEBKGND 信息到窗口。

    • SW_INVALIDATE 无效 prgnUpdate 确定的区域在移动后。

    • SW_SCROLLCHILDREN 移动相交矩形指向由 lpRectScroll 由 dx 和 dy指定的象素数的所有子窗口。 Windows WM_MOVE 信息发送到 lpRectScroll相交的所有子窗口,因此,即使它们不会移动。 脱字号重新定位,则子窗口移动时,并将光标定位矩形相交滚动矩形。

返回值

返回值是 SIMPLEREGION (矩形无效的区域),COMPLEXREGION (矩形无效的边界;重叠的矩形),或者 NULLREGION (而不是无效的区域),因此,如果函数成功;否则返回值是 ERROR

备注

此功能类似于 ScrollWindow 功能,一些附加功能。

如果 SW_INVALIDATESW_ERASE 未指定,ScrollWindowEx 成员函数不是void移动的区域。 如果这些标志之一设置,ScrollWindowEx 无效此区域。 区域不更新,直到应用程序调用 UpdateWindow 成员函数,调用 RedrawWindow 成员函数(指定 RDW_UPDATENOWRDW_ERASENOW),则从应用程序队列不检索 WM_PAINT 消息。

如果窗口具有 WS_CLIPCHILDREN 样式,prgnUpdate 和 lpRectUpdate 指定的返回的区域表示必须更新移动窗口的总区域,包括在需要更新的子窗口的所有区域。

如果 SW_SCROLLCHILDREN 标志指定,Windows不会正确更新屏幕,如果一部分的子窗口移动。 在源矩形外位于移动的子窗口的部件在新目标不会正确清除和不会重绘。 使用 DeferWindowPos Windows函数将 lpRectScroll 矩形之间不完全的子窗口。 光标重新定位,如果 SW_SCROLLCHILDREN 标志设置,并插入符号矩形相交滚动矩形。

所有输入和输出坐标(对于 lpRectScroll、 lpRectClip、 lpRectUpdate和 prgnUpdate)假定在工作区坐标,无论窗口是否具有 CS_OWNDCCS_CLASSDC 选件类样式。 使用 LPtoDPDPtoLP Windows功能来回逻辑坐标转换,如果需要。

要求

Header: afxwin.h

请参见

参考

CWnd 类

层次结构图

CWnd::RedrawWindow

CDC::ScrollDC

CWnd::ScrollWindow

CWnd::UpdateWindow

DeferWindowPos

ScrollWindowEx