近期工作中处理的一些问题,简单的记录下。问题不大,但是有坑,初次接触很讨厌,顺利快速解决太需要经验了。
对于Windows平台,游戏如果要全屏,则输入法提示框显示不出来。解决方法一般有两种:
- 接管所有的IME消息,自己绘制输入法提示框。这种方法坑多,工作量大,还不保证美观,绝不推荐。
- 用假全屏。之前查资料说假全屏效率低,害得我一直不敢往这方面想。最后没办法了,发现完全不是那么一回事: 所谓的效率低,是相对于全屏独占资源那种情况来说的,而假全屏不会带来额外的性能消耗,因 为压根就是窗口模式嘛!对于一款游戏来说,窗口模式是最常见的情况,优化好了,压根不在乎全屏和窗口之间那丁点的效率差别。所以,假全屏实乃居家必备,老少咸宜,就放心用吧。
还有,某些情况下需要屏蔽输入法,例如密码框输密码的时候;完了事,肯定想恢复回来。网上的资料一大推 ,这里不多说了,看起来都是很简单的事情。但是,运气不好,遇到坑了,屏蔽了之后怎么着都恢复不回来。 相关的API文档每个字都抠过了,也没有看不出有什么不妥的。最后,彻彻底底读了下IME的文档,发现这玩意 是和线程相关的,很不巧,我屏蔽IME和恢复IME恰恰在不同的线程中。多线程的坑还真是多。看来别人都没遇 到这档子事,遇到这档子事的也没写blog。
写blog实在费劲,有了Wiz收藏各种资料,有时候真想草草记录一下了事。但是我又想到,如果哪天有人遇到了屏蔽输入法没法恢复的情况,抓头挠额,看官方文档也不知所以然,但看到了这篇文章,问题能迎刃而解呢。