0

我有一个带有字符串值的文本框。在焦点丢失时,它执行特定功能(例如功能 1)。但即使我失去了对窗口的关注,这个 OnFocus 事件也会被触发。

假设我有以下代码:

classA::OnTextBoxFocus()
{
   CWnd* pCurrentFocus = GetFocus();

  // if focus event execute function 1

}

现在我想检查一下应用程序窗口是否处于活动状态。只有当窗口处于活动状态时,才会OnFocus触发事件。

我通过帖子“确定当前窗口是否为活动窗口?(StackOverflow) ”了解到使用 GetActiveWindow() 或 GetForegroundWindow()

但是,我发现很难进行此检查。你能通过一个例子帮助我理解,如何实施吗?

4

1 回答 1

0

我尝试检查 On focus 事件是否为 NULL。

classA::OnTextBoxFocus()
{
   CWnd* pCurrentFocus = GetFocus();

  if(pCurrentFocus != NULL)
  // if focus event execute function 1

}

这目前正在按预期工作。现在,如果更改当前窗口,我可以绕过 OnFocus 事件。

于 2015-11-23T16:10:38.377 回答