多次调用ON_EN_KILLFOCUS

时间:2010-10-07 09:33:07

标签: mfc cedit

我正在使用CEdit控件。我已经为ON_EN_KILLFOCUS消息分配了一个事件处理程序。它被正确调用。但问题是,当我关闭对话框时,这个事件处理程序被调用四次。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:0)

为什么要试图阻止它?只要确保你的处理程序忽略那些无关紧要的程序 -

答案 1 :(得分:-1)

刚遇到类似的问题,并通过分离到不同的处理程序来解决。

我正在使用:

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)