WinCE输入法 .

1 枚举WinCE系统中可用的输入法

int SipEnumIM(

  IMENUMPROC pEnumIMProc

);

参数pEnumIMProc指向一个回调函数SipEnumIMProc,在该函数中获取可用输入法的信息。如果pEnumIMProc设置为NULL,则SipEnumIM返回当前系统中可用输入法的数量。

CLSID g_SipClsid[10] = {0};

int g_index = 0, g_nIMs = 0;

g_nIMs = SipEnumIM(NULL); // 在我们的eWin产品中,返回值是2(大小双拼)

回调函数SipEnumIMProc的原型:

int SipEnumIMProc(

  IMENUMINFO* pIMInfo

);

参数pIMInfo 指向IMENUMINFO结构体,该结构体如下:

struct_IMENUMINFO{

  TCHAR szName[MAX_PATH];

  CLSID clsid;

}IMENUMINFO;

主要获取其中的clsid,保存下来,以后设置当前输入法要用到。

例:

CLSID g_SipClsid[20] = {0};

int g_index = 0, g_nIMs = 0;

 

int SipEnumIMProc(IMENUMINFO* pIMInfo)

{

       if (g_index < g_nIMs)

       {

              g_SipClsid[g_index] = pIMInfo->clsid;

              g_index++;

              return g_index;

       }

       g_index = 0;

       return 0;

}

 

g_nIMs = SipEnumIM(NULL);

IMENUMPROC pEnumIMProc = SipEnumIMProc;

SipEnumIM(pEnumIMProc);

这段代码在我公司WinCE产品中获取到两个可用输入法的CLSID

{f50603d1-cf2f-41d8-a74b-651226633ff0}

{28BD0FFF-23E2-4976-A685-C419CB8011DC}

上面的是小键盘双拼输入法的CLSID,下面的是大键盘的CLSID

2 设置当前输入法

BOOL SipSetCurrentIM(

  CLSID* pClsid

);

这一个函数就可以完成设置当前输入法的功能,唯一的参数就是可用的输入法CLSID

例:

::SipSetCurrentIM(&g_SipClsid[0]); // 设置为小键盘双拼输入法

::SipSetCurrentIM(&g_SipClsid[1]); // 设置为大键盘双拼输入法

3 设置WinCE系统的开机默认输入法

[HKEY_CURRENT_USER/ControlPanel/Sip]

在我的WinCE系统下,在如上注册表位置,DefaultImData设置为{f50603d1-cf2f-41d8-a74b-651226633ff0},则开机默认的输入法为小键盘。将其值修改为{28BD0FFF-23E2-4976-A685-C419CB8011DC}则开机默认的输入法为大键盘,当然前提是注册表可掉电保存。

4 显示/隐藏当前输入法面板

SipShowIM(SIPF_ON);  // 显示

SipShowIM(SIPF_OFF);  // 隐藏

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值