如果应用程序 window 失去激活 c++,则绕过 OnFocus/GetFocus 事件的触发器
Bypass trigger of OnFocus/GetFocus event if the application window loses activation c++
我有一个接受字符串值的文本框。在 Focus 丢失时,它执行特定功能(比如功能 1)。但是即使我失去了对 window 的关注,这个 OnFocus 事件也会被触发。
假设我有以下代码:
classA::OnTextBoxFocus()
{
CWnd* pCurrentFocus = GetFocus();
// if focus event execute function 1
}
现在我想检查一下应用程序 window 是否处于活动状态。仅当 Window 处于活动状态时,才应触发 OnFocus
事件。
我了解到使用 GetActiveWindow() 或 GetForegroundWindow() 通过 post "determine if the current window is the active window?(Whosebug)"
但是我发现很难进行此检查。你能通过一个例子帮助我理解,如何实施吗?
我尝试检查焦点事件是否为 NULL。
classA::OnTextBoxFocus()
{
CWnd* pCurrentFocus = GetFocus();
if(pCurrentFocus != NULL)
// if focus event execute function 1
}
这目前正在按预期工作。现在,如果更改当前 window.
,我可以绕过 OnFocus 事件
我有一个接受字符串值的文本框。在 Focus 丢失时,它执行特定功能(比如功能 1)。但是即使我失去了对 window 的关注,这个 OnFocus 事件也会被触发。
假设我有以下代码:
classA::OnTextBoxFocus()
{
CWnd* pCurrentFocus = GetFocus();
// if focus event execute function 1
}
现在我想检查一下应用程序 window 是否处于活动状态。仅当 Window 处于活动状态时,才应触发 OnFocus
事件。
我了解到使用 GetActiveWindow() 或 GetForegroundWindow() 通过 post "determine if the current window is the active window?(Whosebug)"
但是我发现很难进行此检查。你能通过一个例子帮助我理解,如何实施吗?
我尝试检查焦点事件是否为 NULL。
classA::OnTextBoxFocus()
{
CWnd* pCurrentFocus = GetFocus();
if(pCurrentFocus != NULL)
// if focus event execute function 1
}
这目前正在按预期工作。现在,如果更改当前 window.
,我可以绕过 OnFocus 事件