870920 Menu

解决JUCE程序启动后未处于前台激活状态的小Tip

使用JUCE类库所开发的GUI程序,有些时候启动后,程序未处于前台显示并激活的状态,要么位于其它程序的窗口之后,要么干脆未显示,仅状态栏或Dock栏中的程序图标在闪烁。这个问题的原因是:继承自DocumentWindow的程序主窗口类的构造函数中,某些语句的顺序有误。按如下语句进行调整即可。

主窗口类的构造函数中:

用Projucer自动生成代码时,设置操作系统原生标题栏和设置窗口可视这两行语句的顺序是正确的。如果还需设置窗口大小可调,则将该语句放到这两行语句的前面。

此外,如启动后,程序未获得键盘焦点,则在上述语句之后添加一行,即:显式将键盘焦点设置给某个组件(前提是该组件必须能接收焦点,并处于抢占模式。在该组件类的构造函数或resized()函数中设置均可)。