勇芳软件工作室.汉化:  Painting and Drawing > Painting and Drawing Functions >

RedrawWindow

Previous pageReturn to chapter overviewNext page

描述

 

RedrawWindow功能可更新窗口客户区中指定的矩形或区域。

 

C++ 语法

 

BOOL RedrawWindow(

__in HWND hWnd,

__in const RECT *lprcUpdate,

__in HRGN hrgnUpdate,

__in UINT flags

);

 

PowerBASIC 语法

 

FUNCTION RedrawWindow ( _

BYVAL hWnd AS DWORD, _

BYREF lprcUpdate AS RECT, _

BYVAL hrgnUpdate AS DWORD, _

BYVAL flags AS DWORD _

) AS LONG

 

参数

 

hWnd

 

[in]处理窗口以重新绘制。如果此参数为NULL,则会更新桌面窗口。

 

lprcUpdate

 

[in]指向RECT结构的指针,其中包含更新矩形的以设备为单位的坐标。如果hrgnUpdate参数标识一个区域,则忽略该参数。

 

hrgnUpdate

 

[in]处理更新区域。如果hrgnUpdatelprcUpdate参数都为NULL,则将整个客户机区域添加到更新区域。

 

flags

 

[in]指定一个或多个重绘标志。此参数可用于使窗口无效或验证,控制重新绘制,并控制哪些窗口受RedrawWindow的影响。

 

以下标志用于使窗口无效。

 

标志(无效)

描述

RDW_ERASE

当窗口被重新绘制时,使窗口接收到WM_ERASEBKGND消息。还必须指定RDW_INVALIDATE标志;否则,RDW_ERASE不起作用。en

RDW_FRAME

导致与更新区域相交的窗口的非客户区域的任何部分接收WM_NCPAINT消息。还必须指定RDW_INVALIDATE标志;否则,RDW_FRAME无效。enWM_NCPAINT消息通常不会在执行RedrawWindow期间发送,除非指定了RDW_UPDATENOW或RDW_ERASENOW。

RDW_INTERNALPAINT

导致WM_PAINT消息发布到窗口,而不管窗口的任何部分是否无效。

RDW_INVALIDATE

无效lprcUpdatehrgnUpdate(只有一个可能不为空)。如果两者均为NULL,则整个窗口无效。

 

以下标志用于验证窗口。

 

标志(验证)

描述

RDW_NOERASE

禁止任何待处理的WM_ERASEBKGND邮件。

RDW_NOFRAME

禁止任何待处理的WM_NCPAINT邮件。此标志必须与RDW_VALIDATE一起使用,通常与RDW_NOCHILDREN一起使用。en应谨慎使用RDW_NOFRAME,因为它可能会导致部分窗口被不正确地绘制。

RDW_NOINTERNALPAINT

禁止任何待处理的内部WM_PAINT邮件。此标志不影响非NULL更新区域的WM_PAINT消息。

RDW_VALIDATE

验证lprcUpdate或hrgnUpdate(只有一个可能是非NULL)。如果两者均为NULL,则整个窗口都将被验证。此标志不影响内部WM_PAINT邮件。

 

重绘时,以下标志控制。除非指定了这些标志之一,否则RedrawWindow不会重新绘制。

 

描述

RDW_ERASENOW

导致受影响的窗口(如RDW_ALLCHILDREN和RDW_NOCHILDREN标志指定)在函数返回之前接收WM_NCPAINTWM_ERASEBKGND消息(如有必要)。WM_PAINT消息在普通时间收到。

RDW_UPDATENOW

导致受影响的窗口(如RDW_ALLCHILDREN和RDW_NOCHILDREN标志指定)在函数返回之前接收WM_NCPAINTWM_ERASEBKGNDWM_PAINT消息(如有必要)。

 

默认情况下,受RedrawWindow影响的窗口取决于指定的窗口是否具有WS_CLIPCHILDREN样式。不是WS_CLIPCHILDREN样式的子窗口不受影响;非WS_CLIPCHILDREN窗口被递归验证或无效,直到遇到WS_CLIPCHILDREN窗口。以下标志控制哪些窗口受RedrawWindow功能的影响。

 

描述

RDW_ALLCHILDREN

在重绘操作中包括子窗口(如果有的话)。

RDW_NOCHILDREN

从重画操作中排除子窗口(如果有的话)。

 

返回值

 

如果函数成功,返回值不为零。

 

如果函数失败,返回值为零。

 

备注

 

RedrawWindow用于使部分桌面窗口无效时,桌面窗口不会收到WM_PAINT消息。要重新绘制桌面,应用程序使用RDW_ERASE标志来生成WM_ERASEBKGND消息。

 

引用文件 #INCLUDE Once

 

WinUser.inc(包括Windows.inc)