天天看點

WM_PAINT消息造成CPU卡死的原因。。。。關于CDialog類和CWnd類的WM_PAINT消息的了解

CDialog類調用WM_PAINT消息會自動調用ValidateRect

CWnd類調用WM_PAINT消息需要手動調用。

InvalidateRect(HWND)   使視窗無效   産生消息WM_PAINT;   

   ValidateRect(HWND) 使視窗有效   清除消息隊列中的WM_PAINT消息  

例如:

class CMyWndDlg : public CWnd

{

protected:

        afx_msg void OnPaint();

}

void CMyWndDlg::OnPaint()

{

//這裡加入你要實作的功能

 CRect rect;

 GetClientRect(&rect);

 ValidateRect(rect);

}

這樣就實作了和CDialog類一樣的WM_PAINT消息處理功能

這就是為什麼會不停的發送WM_PAINT消息造成CPU卡死的原因

繼續閱讀