2015-12-22 75 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();'。 –