如何获得当前的输入法名称?

dxhh99 2010-03-07 04:38:41
如何获得当前的输入法名称??

找到这段代码:

char szBuf[25];
double thId;
HANDLE hCurrentKBLayout;
//取回描述应用程序键盘布局的句柄,0表示取当前输入法
hCurrentKBLayout = GetKeyboardLayout(0);
memset(szBuf, 0x00, 25);
//获取指定输入法的名称
ImmGetDescription(hCurrentKBLayout, szBuf, 50);
if(String(szBuf).Length()==0)
strcpy(szBuf,"系统默认");
ShowMessage("当前输入法: " + String(szBuf));


取得当前的输入法是: "搜狗拼音输入法"
怎么样取得: "中文 (简体) - 搜狗拼音输入法"
...全文
244 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hzy694358 2010-03-08
mark
markvmark

mark
mark
mark
  • 打赏
  • 举报
回复
Dingnifei123 2010-03-08
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\Imm.h
看看这个头文件,
  • 打赏
  • 举报
回复
许文君 2010-03-08
引用 5 楼 dingnifei123 的回复:
查一下MSDN,好像有这么个东东,
...............................
前段时间好像有个牛人说背msdn里函数什么的,希望他背到这个函数了,

这个是兔子说的吧0 0。
个人认为,中文(简体) 这个可以依靠判断直接得来吧?然后CSRING+即可了
当然我没用过,要是不行就当我胡说
  • 打赏
  • 举报
回复
dxgxk 2010-03-08
自己顶一下。。。。。。。。
  • 打赏
  • 举报
回复
dxhh99 2010-03-08

HKL myhkl;

失去焦点时:

myhkl=GetKeyboardLayout(0);//获得当前输入法
if(ImmIsIME(myhkl))
ImmSimulateHotKey(Handle,IME_CHOTKEY_IME_NONIME_TOGGLE);


重新获得焦点时:

if(ImmIsIME(myhkl))
ActivateKeyboardLayout(myhkl,KLF_ACTIVATE);


  • 打赏
  • 举报
回复
Dingnifei123 2010-03-07
你要是下不了,我可以传给你,

或许对你有点帮助,
  • 打赏
  • 举报
回复
Dingnifei123 2010-03-07
查一下MSDN,好像有这么个东东,
...............................
前段时间好像有个牛人说背msdn里函数什么的,希望他背到这个函数了,
  • 打赏
  • 举报
回复
dxhh99 2010-03-07
自己顶一下.....
  • 打赏
  • 举报
回复
dxhh99 2010-03-07
我想在控件失去焦点时,保存输入法,

重新获得焦点是,恢复原来使用的输入法.
  • 打赏
  • 举报
回复
sjdev 2010-03-07
Ime编程,不是很了解.
  • 打赏
  • 举报
回复
Dingnifei123 2010-03-07
也想知道,

帮顶,
  • 打赏
  • 举报
回复
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2010-03-07 04:38
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……