GDI-InvalidateRect使客户区矩形区域的图形变得无效

 

    RECT rect;
    ::GetClientRect(m_hWnd, &rect);//获取窗口客户区的坐标
    BOOL b=::InvalidateRect(m_hWnd,&rect,TRUE);  //使客户区矩形区域的图形变得无效
    /*
    使原来画的图像无效
    参数1:HWND hWnd   窗口句柄
            如果为NULL,则系统将在函数返回前重新绘制所有的窗口, 然后发送 WM_ERASEBKGND 和 WM_PAINT 给窗口过程处理函数
    参数2:CONST RECT *lpRect  无效区域的矩形指针
            如果为NULL,全部的窗口客户区域将被增加到更新区域中
    参数3:BOOL bErase  指出无效矩形被标记为有效后,是否重画该区域,重画时用预先定义好的画刷。当指定TRUE时需要重画
    返回值:函数成功则返回非零值,否则返回零值。
    说明:被标记为无效矩形的区域直到WM_PAINT消息被处理完之后才会消失,或者使用ValidateRect(),ValidateRgn()函数来使之有效。
    InvalidateRect发送WM_PAINT的形式是一种POST形式(即发送到程序消息队列),而不是像SendMessage一样直接让操作系统带着消息,调用WndProc
    可以在后面接着使用UpdateWindow()直接绕过程序消息队列直接发送消息到WndProc函数,来重绘窗口

    */

 

 

 

 

 

posted @ 2023-05-13 20:25  天子骄龙  阅读(73)  评论(0)    收藏  举报