Wxwidgets 聚焦vs主动

Wxwidgets 聚焦vs主动,wxwidgets,Wxwidgets,一个框架怎么可能是“活动的”,但没有“焦点”? 根据Windows文档,AFAICT,一个窗口在激活时获得焦点,那么为什么有两个变量,一个变量如何为真而另一个变量不为真呢?任何派生的wxTopLevelWindow(wxFrame、wxDialog及其派生)都有方法IsActive()。wx文件说: 如果此窗口当前处于活动状态,即如果用户处于活动状态,则返回true 目前正在使用它 “使用它”表示用户正在调整/移动它,或在工具栏中单击鼠标,或键入控件 HasFocus()使聚焦窗口接受键盘输入(

一个框架怎么可能是“活动的”,但没有“焦点”?
根据Windows文档,AFAICT,一个窗口在激活时获得焦点,那么为什么有两个变量,一个变量如何为真而另一个变量不为真呢?

任何派生的wxTopLevelWindow(wxFrame、wxDialog及其派生)都有方法
IsActive()
。wx文件说:

如果此窗口当前处于活动状态,即如果用户处于活动状态,则返回true 目前正在使用它

“使用它”表示用户正在调整/移动它,或在工具栏中单击鼠标,或键入控件

HasFocus()
使聚焦窗口接受键盘输入(即使它不是文本控件)

注意“使用它”和“接受键盘输入”之间的细微差别


还有另一个查询:
IsEnabled()
,用于用户输入,这与“用户操作”不同。

焦点可能(通常)属于活动顶级窗口的子窗口。或者,如果您愿意,活动窗口是聚焦窗口的顶级父窗口。

这是否意味着子窗口永远不能处于活动状态?嗯,
IsActive()
wxTopLevelWindow
的成员,而不是
wxWindow
,因此您甚至不能询问子窗口是否处于活动状态。我想这可能意味着它永远不会被激活。。。