2015-12-22 83 views
2

我有一个CFormView派生类,我想调用焦点丢失时的方法。OnKillFocus不被称为

尝试这样:

MyClass.cpp

ON_CONTROL_REFLECT(EN_KILLFOCUS, OnKillFocus) 

void CMyClass::OnKillFocus() 
{ 
} 

MyClass.h

afx_msg void OnKillFocus(); 

但我的方法是不会被调用,有一些方法可以达到我想要什么?

+0

如果这是你想要实现的东西:WM_KILLFOCUS是在错误的时间做现场确认(https://blogs.msdn.microsoft.com/oldnewthing/20040419-00/p = 39753)。 – IInspectable

回答

2

相关消息和功能是

ON_WM_KILLFOCUS() 

afx_msg void OnKillFocus(CWnd* pNewWnd); 

EN_KILLFOCUSEN_XXX通知特定于编辑控件。例如:

BEGIN_MESSAGE_MAP(CMyDialog, CDialog) 
    ON_EN_KILLFOCUS(IDC_EDIT1, OnMyFunction) 
END_MESSAGE_MAP() 

void OnMyFunction(); 
+0

在消息映射中添加'ON_WM_KILLFOCUS()'时,我得到了无效的类型转换 – Mangs

+1

请确保删除早先声明的另一个'OnKillFocus();'。 –