簡體   English   中英

MFC組合框killfocus不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM