这是一个更具体的问题,与我以前的问题有关。C++ - 对话框问题
我有一个使用计时器的应用程序。代码以我的WM_TIMER
处理程序调用DialogBoxParam(...)
以及一些自定义消息处理程序(我们称之为DlgProc
)的方式编写。
这在一定程度上做了以下的方法:
情况下WM_TIMER: {// 常规,显示一个特殊的消息框 DisplayMessageBox(...); return 0; }
现在,如果我做DlgProc
处理这样的消息(见代码),这将导致吨的对话框(每WM_TIMER
调用一个)。
switch (msg)
{
case WM_INITDIALOG:
// (...)
return TRUE;
case WM_COMMAND:
// (...)
return TRUE;
return FALSE;
}
但是,如果我添加一个虚拟WM_PAINT
处理器(return TRUE;
)我DlgProc
,这导致所示对话框和100%的CPU负载(那是因为我收到吨WM_PAINT
消息)只有一个。
问:
有什么可以在这里完成,如果我想我的应用程序,以显示只有一个对话框,并有WM_PAINT处理无CPU负载? (我的意思是,有类似的行为绘制独特的对话框,并完全暂停父窗口)。
此外,如果有人解释究竟是什么在这种情况下发生这将是伟大的,为什么我收到WM_PAINT
消息gazillions到我的对话框,为什么他们的处理(return TRUE
)导致防止其他对话框创建。
谢谢。
你叫DefDlgProc某处您的代码 – 2010-05-21 13:13:44