ScrollWindowEx功能滚动指定窗口的客户区域的内容。此函数与ScrollWindow功能类似,但具有其他功能。
int ScrollWindowEx(
HWND 【的hWnd】, | //处理窗口滚动 |
INT 【dx】, | //水平滚动量 |
INT 【dy】, | //垂直滚动量 |
CONST RECT *【// address of structure with scroll rectangle】, | //具有滚动矩形的结构的地址 |
CONST RECT *【// address of structure with clip rectangle】, | //具有剪辑矩形的结构的地址 |
HRGN 【hrgnUpdate】, | //更新区域的句柄 |
LPRECT 【// scrolling flags】, | //更新矩形结构的地址 |
UINT 【旗】 | //滚动标志 |
); |
参数
【的hWnd】
标识要滚动客户端区域的窗口。
【dx】
指定水平滚动的设备单位数量。该参数必须是负值才能向左滚动。
【dy】
指定垂直滚动的设备单位数量。该参数必须是负值才能向上滚动。
【// address of structure with scroll rectangle】
指向RECT结构,指定要滚动的客户区域的部分。如果此参数为NULL,则将滚动整个客户机区域。
【// address of structure with clip rectangle】
指向包含裁剪矩形坐标的RECT结构。只有剪裁矩形中的设备位才会受到影响。从矩形外部滚动到内侧的位被画;从矩形的内部滚动到外面的位没有画。
【hrgnUpdate】
标识修改为通过滚动保持区域无效的区域。此参数可能为NULL。
【// scrolling flags】
指向通过滚动无效的RECT结构的边界。此参数可能为NULL。
【旗】
指定控制滚动的标志。此参数可以是以下值之一:
值 | 含义 |
SW_ERASE | 当使用SW_INVALIDATE标志指定时,通过向窗口发送WM_ERASEBKGND消息来清除新的无效区域。 |
SW_INVALIDATE | 使滚动后的【hrgnUpdate】参数标识的区域无效。 |
SW_SCROLLCHILDREN | 滚动与【// address of structure with scroll rectangle】参数指向的矩形相交的所有子窗口。子窗口按【dx】和【dy】参数指定的像素数滚动。Windows发送WM_MOVE消息到与【// address of structure with scroll rectangle】矩形相交的所有子窗口,即使它们不移动。 |
返回值
如果函数成功,返回值为SIMPLEREGION(矩形无效区域),COMPLEXREGION(非矩形无效区域,重叠矩形)或NULLREGION(无效区域)。
如果函数失败,返回值为ERROR。
备注
如果未指定SW_INVALIDATE和SW_ERASE标志,ScrollWindowEx不会使滚动的区域无效。如果这些标志中的任一个被设置,ScrollWindowEx将使该区域无效。直到应用程序调用{??989796127}函数,调用RedrawWindow函数(指定RDW_UPDATENOW或RDW_ERASENOW标志)或从应用程序队列检索WM_PAINT消息之后,才会更新该区域。
如果窗口具有WS_CLIPCHILDREN样式,则由【hrgnUpdate】和【// scrolling flags】指定的返回区域表示必须更新的滚动窗口的总面积,包括需要更新的子窗口中的任何区域。
如果指定了SW_SCROLLCHILDREN标志,则如果滚动子窗口的一部分,Windows将不会正确更新该屏幕。位于源矩形外部的滚动子窗口的部分不会被清除,并且未在其新目标中重新绘制。要移动不完全位于【// address of structure with scroll rectangle】指定的矩形内的子窗口,请使用DeferWindowPos功能。如果设置了SW_SCROLLCHILDREN标志并且插入符号矩形与滚动矩形相交,则光标重新定位。
无论窗口是否具有CS_OWNDC或CS_CLASSDC类样式,所有输入和输出坐标(对于【// address of structure with scroll rectangle】,【// address of structure with clip rectangle】,【// scrolling flags】和【hrgnUpdate】)都被确定为客户端坐标。如果需要,可以使用LPtoDP和DPtoLP函数来转换逻辑坐标。
也可以看看
DeferWindowPos, DPtoLP, LPtoDP, RECT, RedrawWindow, ScrollDC, ScrollWindow, UpdateWindow