OnKillFocus不被称为
问题描述:
我有一个CFormView派生类,我想调用焦点丢失时的方法。OnKillFocus不被称为
尝试这样:
MyClass.cpp
ON_CONTROL_REFLECT(EN_KILLFOCUS, OnKillFocus)
void CMyClass::OnKillFocus()
{
}
MyClass.h
afx_msg void OnKillFocus();
但我的方法是不会被调用,有一些方法可以达到我想要什么?
答
相关消息和功能是
ON_WM_KILLFOCUS()
和
afx_msg void OnKillFocus(CWnd* pNewWnd);
EN_KILLFOCUS
等EN_XXX
通知特定于编辑控件。例如:
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_EN_KILLFOCUS(IDC_EDIT1, OnMyFunction)
END_MESSAGE_MAP()
void OnMyFunction();
+0
在消息映射中添加'ON_WM_KILLFOCUS()'时,我得到了无效的类型转换 – Mangs
+1
请确保删除早先声明的另一个'OnKillFocus();'。 –
如果这是你想要实现的东西:WM_KILLFOCUS是在错误的时间做现场确认(https://blogs.msdn.microsoft.com/oldnewthing/20040419-00/p = 39753)。 – IInspectable