该函数添加一个区域到指定窗口的更新区域。更新区域代表窗口客户端的一部分,这部分必须进行重新绘制。
BOOL InvalidateRect(
HWND hWnd,
const RECT *lpRect,
BOOL bErase
);
参数:
hWnd
指向需要重新绘制的窗口句柄。如果该参数为空,系统将更新和重新绘制所有的窗口,然后在该函数返回之前发送WM_ERASEBKGND给窗口过程.
lpRect
一个指向RECT的结构体,该结构包含了要添加到更新区域的长方形区域的坐标。如果该参数为NULL,整个客户端区域将会被添加到更新区域。
bErase
该参数为布尔型。指定了当更新区域重新绘制时,更新区域的背景是否被擦除掉。
返回值
函数执行成功时返回非零, 失败时返回零。要获取更多的关于错误的信息,可以调用GetLastError();
注意事项
参数hWnd不能为NULL
无效区域不会马上更新,相反会在更新区域“累积”,直到当下一个WM_PAINT消息发生时或者该区域已经被ValidateRect函数更新过。
当应用程序队列中没有其他的消息时,并且更新区域不为空时,系统将向窗口发送WM_PAINTA消息 。如果bErase为TRUE,则整个背景将会被擦除,而不是给定的区域。