У меня есть очень простое приложение Win32, которое использует CAtlExeModuleT. Модуль просто создает класс CTestWindow, производный от CWindowImpl. Он просто имеет один обработчик сообщений для WM_PAINT. После того, как я создал окно и отобразил его, метод OnPaint (сообщение WM_PAINT) вызывается бесконечно, и он потребляет 100% ЦП.
Код, который создает окно, очень прост:
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;
}