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