MFC中的OnKillFocus()重写在奇数时间触发

OnKillFocus() override in MFC triggering at odd times

本文关键字:时间 重写 中的 OnKillFocus MFC      更新时间:2023-10-16

我需要知道我的Window何时偏离输入焦点,所以我重载了CWnd的OnKillFocus()方法。

然而,当我关注另一个应用程序(alt+tab)时,它不会调用这个方法,甚至不会最小化窗口。但当我将其从最小化状态恢复时,它确实调用了该方法。这是它触发该方法的预定时间吗?

如果您需要确保在应用程序关闭时收到通知,我认为您需要一个CWnd::OnActivateApp()处理程序。

OnKillFocus()通常只用于具有获得焦点概念的控件-按钮、编辑框、列表框等。通常CWnd不接受焦点,所以你不能依赖它-我很惊讶你能得到它。

除了上面提到的WM_ACTIVATEAPP之外,在您可能想要捕获的同一应用程序中的窗口之间切换时,还有WM_ACTIVATE