程序启动后未前台激活?

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

主窗口类的构造函数中:


// 首先设置窗口大小可调(如程序不是固定大小的窗口)
setResizable (true, true);

// 而后设置使用操作系统原生的标题栏样式(该句可选)
setUsingNativeTitleBar (true);

// 最后设置为窗口可视
setVisible (true);

更简单易记的“口诀”是:大小可调原生栏,最后可视前台显

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

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

SwingCoder

如果本文对您有所启发或助益,请微信打赏

创作时间: 2016.12.20 09:32
最后修改: 2017.07.26 14:57

本文版权:UnderwaySoft   共享协议:署名-非商业使用-禁止演绎


上一篇: JUCE 4.3.0 API文档翻译完毕
下一篇: 《JUCE API中文参考》印刷装订完毕

 随机推荐:
Email: underwaySoft@126.com 微信公众号: UnderwaySoft