這是一個更具體的問題,與我以前的問題有關。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