MFC combobox killfocus不起作用

时间:2014-04-14 19:24:11

标签: c++ combobox mfc onkillfocus

我有一个对话框,里面有几个combobox es作为成员变量。控制向导允许我为combobox消息创建CBN_KILLFOCUS es的处理程序。例如,自动调用一个这样的处理程序

void MyDlg::OnKillfocusMyCombo()

我的期望是,只要我跳出它就会调用这个处理程序。但它并没有被召唤。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。这是MFC中的错误。 (已经过了4年,并且它仍然存在。)尽管广播了Win32 ON_CBN_KILLFOCUS通知本身,但从未调用过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);
}