2010-10-07 210 views
0

我正在使用CEdit控件。我已經爲ON_EN_KILLFOCUS消息分配了一個事件處理程序。它被正確調用。但問題是,我曾經關閉對話框,這個事件處理程序被調用了四次。我怎樣才能防止這一點?ON_EN_KILLFOCUS多次調用

回答

0

爲什麼試圖阻止它?只要確保你的處理程序忽略那些無關緊要的東西 -

+0

OK傑夫。我認爲這不是一種正常的行爲。所有其他UI控件的情況都一樣嗎? – Krishnan 2010-10-08 05:09:56

+1

好吧,我發現很難預測控件什麼時候會被調用,所以最好爲任何事情做好準備,並且如果需要的話就忽略消息 - – Jeff 2010-10-08 06:10:27

0

剛剛遇到類似的問題,並通過分離到不同的處理程序解決。

我所用:

ON_EN_KILLFOCUS(IDE_THRESHOLD, OnKillFocusOnEdit) 
ON_EN_KILLFOCUS(IDE_AUTODENY_THRESHOLD, OnKillFocusOnEdit) 

OnKillFocusOnEdit也將獲得每一次這兩種編輯的失去焦點兩條消息。

現在通過改變以下中,每個功能僅接收一個按預期消息:

ON_EN_KILLFOCUS(IDE_THRESHOLD, OnKillFocusOnEdit) 
ON_EN_KILLFOCUS(IDE_AUTODENY_THRESHOLD, OnKillFocusOnAutoDenyEdit)