【问题标题】:OnKillFocus() override in MFC triggering at odd timesMFC 中的 OnKillFocus() 覆盖在奇数时间触发
【发布时间】:2008-10-16 00:32:18
【问题描述】:
我需要知道我的窗口何时失去输入焦点,所以我重载了 CWnd 的 OnKillFocus() 方法。
但是,当我关注另一个应用程序(alt+tab),甚至最小化窗口时,它不会调用此方法。但是当我将其从最小化中恢复时,它确实会调用该方法。这是它触发此方法的预期时间吗?
【问题讨论】:
标签:
c++
events
mfc
overriding
onkillfocus
【解决方案1】:
如果您需要确保在关闭应用程序时收到通知,我认为您将需要一个 CWnd::OnActivateApp() 处理程序。
【解决方案2】:
OnKillFocus() 通常只用于具有获得焦点概念的控件 - 按钮、编辑框、列表框等。通常 CWnd 不接受焦点,所以你不能依赖它 - 我很惊讶你能得到它。
除了上面提到的WM_ACTIVATEAPP,还有WM_ACTIVATE,当您在同一个应用程序中切换窗口时,您可能想要捕获。