ScrollWindow 函数 (winuser.h)
ScrollWindow 函数滚动指定窗口工作区的内容。
语法
BOOL ScrollWindow(
[in] HWND hWnd,
[in] int XAmount,
[in] int YAmount,
[in] const RECT *lpRect,
[in] const RECT *lpClipRect
);
参数
[in] hWnd
类型: HWND
要滚动工作区的窗口的句柄。
[in] XAmount
类型: int
指定水平滚动的量(以设备单位表示)。 如果要滚动的窗口具有 CS_OWNDC 或 CS_CLASSDC 样式,则此参数使用逻辑单元而不是设备单元。 此参数必须是负值,才能将窗口内容向左滚动。
[in] YAmount
类型: int
指定垂直滚动的量(以设备单位表示)。 如果要滚动的窗口具有 CS_OWNDC 或 CS_CLASSDC 样式,则此参数使用逻辑单元而不是设备单元。 此参数必须是负值才能向上滚动窗口的内容。
[in] lpRect
类型: const RECT*
指向 RECT 结构的指针,指定要滚动的工作区部分。 如果此参数为 NULL,则会滚动整个工作区。
[in] lpClipRect
类型: const RECT*
指向包含剪裁矩形坐标的 RECT 结构的指针。 仅剪裁矩形中的设备位受到影响。 绘制从矩形外部滚动到内部的位;不会绘制从矩形内部滚动到外部的位。
返回值
类型: BOOL
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
如果插入点位于正在滚动的窗口中, ScrollWindow 会自动隐藏插入点以防止它被擦除,然后在滚动完成后还原插入点。 插入点位置会相应地调整。
ScrollWindow 发现的区域不会重新绘制,但会合并到窗口的更新区域中。 应用程序最终会收到 WM_PAINT 消息,通知它必须重新绘制区域。 若要在滚动操作的同时重新绘制未发现的区域,请在调用 ScrollWindow 后立即调用 UpdateWindow 函数。
如果 lpRect 参数为 NULL,则窗口中任何子窗口的位置将偏移 XAmount 和 YAmount 参数指定的量;无效 (窗口中未配对) 区域也是偏移量。 当 lpRect 为 NULL 时,ScrollWindow 速度更快。
如果 lpRect 不为 NULL,则不会更改子窗口的位置,并且窗口中的无效区域不会偏移。 若要防止在 lpRect 不为 NULL 时出现更新问题,请在调用 ScrollWindow 之前调用 UpdateWindow 重新绘制窗口。
示例
有关示例,请参阅 使用WM_PAINT消息滚动文本。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | Windows 10版本 10.0.14393 中引入的 ext-ms-win-ntuser-window-l1-1-4 () |
另请参阅
其他资源
引用