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卡死的原因