2
我有一个非常简单的Win32应用程序使用CAtlExeModuleT。该模块只是创建一个从CWindowImpl派生的类CTestWindow。它只有一个用于WM_PAINT的消息处理程序。在创建窗口并显示它之后,OnPaint方法(WM_PAINT消息)被无限调用,并由此消耗100%的CPU。永不结束与ATL的WM_PAINT循环CWindowImpl
创建窗口的代码非常简单:
m_pMainWnd = new CTestWindow();
if(NULL == m_pMainWnd->Create(NULL, CWindow::rcDefault, _T("Test Window"), WS_OVERLAPPEDWINDOW, 0, hMenu)){
DWORD dwErr = GetLastError();
return E_FAIL;
}
m_pMainWnd->ShowWindow(nShowCmd);
的的OnPaint消息处理程序是非常简单的,以及(它没有做任何事情):
LRESULT CTestWindow::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
// TODO: Add your message handler code here and/or call default
return 0;
}