[英]MFC combobox killfocus doesn't work
我有一個對話框,其中有幾個combobox
es作為成員變量。 控制向導使我可以為CBN_KILLFOCUS
消息的combobox
創建處理程序。 例如,一個這樣的處理程序會自動被調用
void MyDlg::OnKillfocusMyCombo()
我的期望是,只要我退出該處理程序,就會立即調用該處理程序。 但是它沒有被調用。
我遇到了同樣的問題。 這是MFC中的錯誤。 (已經過了4年,現在仍然存在。)盡管廣播了Win32 CBN_KILLFOCUS
通知本身, CBN_KILLFOCUS
不以某種方式ON_CBN_KILLFOCUS
處理程序。
要解決此問題,請手動(以Win32方式)覆蓋對話框的WindowProc
:
LRESULT CMyDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: Add your specialized code here and/or call the base class
//Fix for the bug in MFC
if(message == WM_COMMAND)
{
if(HIWORD(wParam) == CBN_KILLFOCUS &&
LOWORD(wParam) == Your_ComboBox_ID)
{
OnCbnKillfocusComboBox();
}
}
return CDialog::WindowProc(message, wParam, lParam);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.