IME和假全屏

近期工作中處理的一些問題,簡單的記錄下。問題不大,但是有坑,初次接觸很討厭,順利快速解決太需要經驗了。

對於Windows平臺,遊戲如果要全屏,則輸入法提示框顯示不出來。解決方法一般有兩種:

  • 接管所有的IME消息,自己繪製輸入法提示框。這種方法坑多,工作量大,還不保證美觀,絕不推薦。
  • 用假全屏。之前查資料說假全屏效率低,害得我一直不敢往這方面想。最後沒辦法了,發現完全不是那麼一回事: 所謂的效率低,是相對於全屏獨佔資源那種情況來說的,而假全屏不會帶來額外的性能消耗,因 爲壓根就是窗口模式嘛!對於一款遊戲來說,窗口模式是最常見的情況,優化好了,壓根不在乎全屏和窗口之間那丁點的效率差別。所以,假全屏實乃居家必備,老少咸宜,就放心用吧。

還有,某些情況下需要屏蔽輸入法,例如密碼框輸密碼的時候;完了事,肯定想恢復回來。網上的資料一大推 ,這裏不多說了,看起來都是很簡單的事情。但是,運氣不好,遇到坑了,屏蔽了之後怎麼着都恢復不回來。 相關的API文檔每個字都摳過了,也沒有看不出有什麼不妥的。最後,徹徹底底讀了下IME的文檔,發現這玩意 是和線程相關的,很不巧,我屏蔽IME和恢復IME恰恰在不同的線程中。多線程的坑還真是多。看來別人都沒遇 到這檔子事,遇到這檔子事的也沒寫blog。

寫blog實在費勁,有了Wiz收藏各種資料,有時候真想草草記錄一下了事。但是我又想到,如果哪天有人遇到了屏蔽輸入法沒法恢復的情況,抓頭撓額,看官方文檔也不知所以然,但看到了這篇文章,問題能迎刃而解呢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章