关于IME中while(ImmIsIME(GetKeyboardLayout(0)))死循环的问题

kaoboluo3 2010-04-08 11:43:15
我在CIme的构造函数中调用以下的函数作初始化时,while语句总是进入死循环,请问应该怎么解决?
void CIme::DisableIme()
{
/*//HKL hkl_t = GetKeyboardLayout(0);
while(ImmIsIME(GetKeyboardLayout(0)))
//如果ime打开通过循环切换到下一个关闭
ActivateKeyboardLayout((HKL)HKL_NEXT, 0);*/

g_bIme = false;
g_szImeName[0] = 0;
g_szCompStr[0] = 0;
g_szCompReadStr[0] = 0;
g_szCandList[0] = 0;
g_nImeCursor = 0;
}
谢谢了~~
在线等回复
...全文
431 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gudukunpeng 2011-07-24
  • 打赏
  • 举报
回复
所有的输入法都是IME 英文输入法ImmIsIME返回也是true 郁闷 我也遇到了这个问题
kaoboluo3 2010-04-09
  • 打赏
  • 举报
回复
这句的作用是ime打开通过循环切换到下一个关闭,所以一定要用while来判断啊
lcyong06 2010-04-09
  • 打赏
  • 举报
回复
while换成if不就结了
kaoboluo3 2010-04-09
  • 打赏
  • 举报
回复
有人帮忙解答下么

64,641

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧