在Windows中,InvalidateRect函数用于指示窗口或控件的区域无效并请求重新绘制。其函数原型如下:
BOOL InvalidateRect( HWND hWnd, // 窗口句柄 const RECT *lpRect, // 指向要无效的矩形区域的指针,如果为NULL则无效整个窗口 BOOL bErase // 指定是否擦除背景,TRUE为擦除,FALSE为不擦除);使用InvalidateRect函数的一般步骤如下:
获取窗口句柄(hWnd)。创建一个RECT结构体,指定要无效的矩形区域的左上角和右下角的坐标。如果要无效整个窗口,可以将lpRect参数设置为NULL。调用InvalidateRect函数,传入窗口句柄、RECT结构体指针和擦除标志位(TRUE或FALSE)作为参数。示例代码如下:
// 获取窗口句柄HWND hWnd = GetSafeHwnd();// 创建一个RECT结构体,无效整个窗口RECT rect;GetClientRect(hWnd, &rect);// 调用InvalidateRect函数,擦除背景InvalidateRect(hWnd, &rect, TRUE);以上代码将无效整个窗口并请求重新绘制,擦除背景。

