CWnd::InvalidateRect 是 MFC(Microsoft Foundation Classes)中的 CWnd 类的公共方法之一,用于使指定矩形区域无效,从而请求重新绘制该区域。

以下是该方法的基本信息:
BOOL InvalidateRect(LPCRECT lpRect, BOOL bErase = TRUE);

  •  lpRect:一个指向 RECT 结构的指针,指定要使其无效的矩形区域。如果为 NULL,则整个客户区域将被标记为无效。

  •  bErase:一个布尔值,指示是否擦除背景。如果为 TRUE,将擦除背景;如果为 FALSE,将保留背景。


返回值:

  •  如果成功,返回值为非零;如果失败,返回值为零。


使用示例:
CWnd* pWnd = ...;  // 通过某种方式获取 CWnd 对象的指针
RECT rectToInvalidate = {10, 10, 100, 100};  // 示例矩形区域

if (pWnd->InvalidateRect(&rectToInvalidate))
{
    // 使指定矩形区域无效,并请求重新绘制
}
else
{
    // 使矩形区域无效失败
}

通过调用 InvalidateRect 方法,您可以通知系统指定的矩形区域已经过时,需要重新绘制。与 Invalidate 不同,InvalidateRect 允许您指定要使其无效的具体区域,而不是整个客户区域。请注意,系统将在处理消息队列时进行重绘。


转载请注明出处:http://www.pingtaimeng.com/article/detail/23509/MFC/CWnd