ON_EN_KILLFOCUS 被调用多次

发布于 2024-09-26 14:59:45 字数 108 浏览 3 评论 0原文

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

I am using a CEdit control. And I have assigned an event handler for ON_EN_KILLFOCUS message. It gets called correctly. But the problem is that, when ever, I close the dialog box, this event handler gets called four times. How can I prevent this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

隱形的亼 2024-10-03 14:59:45

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

Why try to prevent it? Just make sure your handler ignores the ones that don't matter -

爱要勇敢去追 2024-10-03 14:59:45

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

我正在使用:

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)

Just ran into similar issue and solved by separating to different handlers.

I was using:

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

OnKillFocusOnEdit will receive two messages every time either of these two edits lose focus.

Now by changing to following, each function receives only one message as expected:

ON_EN_KILLFOCUS(IDE_THRESHOLD, OnKillFocusOnEdit)
ON_EN_KILLFOCUS(IDE_AUTODENY_THRESHOLD, OnKillFocusOnAutoDenyEdit)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文