ScrollWindow 函数 (winuser.h)

ScrollWindow 函数滚动指定窗口工作区的内容。

注意 提供 ScrollWindow 函数是为了向后兼容。 新应用程序应使用 ScrollWindowEx 函数。
 

语法

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_OWNDCCS_CLASSDC 样式,则此参数使用逻辑单元而不是设备单元。 此参数必须是负值,才能将窗口内容向左滚动。

[in] YAmount

类型: int

指定垂直滚动的量(以设备单位表示)。 如果要滚动的窗口具有 CS_OWNDCCS_CLASSDC 样式,则此参数使用逻辑单元而不是设备单元。 此参数必须是负值才能向上滚动窗口的内容。

[in] lpRect

类型: const RECT*

指向 RECT 结构的指针,指定要滚动的工作区部分。 如果此参数为 NULL,则会滚动整个工作区。

[in] lpClipRect

类型: const RECT*

指向包含剪裁矩形坐标的 RECT 结构的指针。 仅剪裁矩形中的设备位受到影响。 绘制从矩形外部滚动到内部的位;不会绘制从矩形内部滚动到外部的位。

返回值

类型: BOOL

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

如果插入点位于正在滚动的窗口中, ScrollWindow 会自动隐藏插入点以防止它被擦除,然后在滚动完成后还原插入点。 插入点位置会相应地调整。

ScrollWindow 发现的区域不会重新绘制,但会合并到窗口的更新区域中。 应用程序最终会收到 WM_PAINT 消息,通知它必须重新绘制区域。 若要在滚动操作的同时重新绘制未发现的区域,请在调用 ScrollWindow 后立即调用 UpdateWindow 函数。

如果 lpRect 参数为 NULL,则窗口中任何子窗口的位置将偏移 XAmountYAmount 参数指定的量;无效 (窗口中未配对) 区域也是偏移量。 当 lpRectNULL,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 ()

另请参阅

其他资源

矩形

引用

ScrollDC

ScrollWindowEx

UpdateWindow