ScrollWindowEx()函数

函数功能:该函数滚动指定窗体客户区域的目录。

参数:

hWnd:客户区域将被滚动的窗体句柄。

dx:在设备单元中,指定水平滚动数量。在向左滚动时此参数必须为负。

dy:在设备单元中,指定垂直滚动数量。在向上滚动时此参数必须为负。

prcScroll:指向RECT结构,它指定了将被滚动的客户区域部分。

prcClip:指向包含了类似于被剪下矩形的RECT结构。只有在剪下内部的小块图形才受影响。从矩形外向内部的滚动部分将被着色;而从内向外的滚动部分将不再被着色。

hrgnUpdate:处理已被修改的区域,保存这些由于滚动而无效的区域。此参数可以为空。

prcUpdate:指向RECT结构,它接收由于滚动使得矩形无效部分的边界。此参数值可以为空。

flags:指定控制滚动的标志。这个参数可以是下面的值:

SW_ERASE:通过发送WM_ERASEBKGND消息给窗体。

SW_INVALIDATE:在滚动后,使得由参数hrgnUpdate标识的无效区域被擦除。

SW_SCROLLCHILDREN:动所有由参数prcScroll指出交叉重叠矩形的子窗体。子窗体按照dx和dy规定的像素个数滚动。系统发送消息给所有由prcScroll指出交叉重叠矩形的子窗体,即使他们不移动。

SW_SMOOTHSCROLL:Windows NT 5.0或以上版本中:使用平滑滚动。利用flags参数中HIWORD部分简要说明所需平滑滚动操作的时间。

返回值:如果函数运行成功,返回值为SIMPLEREGION(矩形的无效区域),COMPLEXREGION(非矩形的无效区域)或NULLREGION(没有使无效的区域)如果函数运行成功,返回值为ERROR。若想获得更多的错误信息,请调用GetLastError函数。

注意:如果SW_INVALIDATE和SW_ERASE标志没有被设定,那么函数ScrollWindowEx不能使滚动离开的区域失效。如果其中任意一个标志被设置,ScrollWindowEx函数就可以使区域无效。这块区域将不再被更新直到应用程序调用theUpdateWindow函数,调用theRedrawWindow函数(指定RDW_UPDATENOW或RDW_ERASENOW标志)或是从申请队列中找到WM_PAINT消息。

如果窗体拥有WS_CLIPCHILDREN类型,那么由hrgnUpdate和prcUpdate指定的返回区域描述了必须更新的滚动窗体的全部区域,包括所需更新子窗体的任何区域。

若SW_SCROLLCHILDREN标志被设置,在子窗体被滚动时,系统将不能完全更新屏幕。位于矩形外边的滚动子窗体部分不被擦除,也不在它的新方向上被重画。为了移动子窗体使之完全不在prcScroll指定的矩形条中,可使用DeferWindowPos函数。若标志SW_SCROLLCHILDREN被设置并且^符号交叉滚动矩形,则光标也重新设置。

所有输入输出均被定义为客户端如果有必要,使用IptoDP和dptoLP函数转换逻辑相关性。

Windows CE:参数flags不支持SW_SCROLLCHILDREN。参数dx和dy中只有一个为零。

速查:Windows NT 3.1、Windows 95、Windows CE 1.0以上,头文件:winuser.h;库文件:user32.lib。