WinCE输入法 .
来源:互联网 发布:算法的五个特征 编辑:程序博客网 时间:2024/05/17 22:36
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系统下,在如上注册表位置,DefaultIm的Data设置为{f50603d1-cf2f-41d8-a74b-651226633ff0},则开机默认的输入法为小键盘。将其值修改为{28BD0FFF-23E2-4976-A685-C419CB8011DC}则开机默认的输入法为大键盘,当然前提是注册表可掉电保存。
4 显示/隐藏当前输入法面板
SipShowIM(SIPF_ON); // 显示
SipShowIM(SIPF_OFF); // 隐藏
- wince输入法
- WinCE输入法
- WinCE输入法 .
- wince输入法开发
- 漫谈WinCE输入法
- wince 隐藏输入法图标
- WINCE五笔输入法
- WINCE 6.0 输入法添加
- WinCE输入法操作
- WINCE 6.0 输入法添加
- 有关WinCE输入法
- WinCE输入法使用总结
- wince输入法问题
- wince 中文输入法
- WinCE手写输入法
- sp5v210 wince输入法调试
- WINCE 6.0 输入法添加
- Wince下的手写输入法
- 给 datepicker 设定日期格式
- unity3d更改鼠标样式
- 老问题了,关于指针传值的问题
- 根据字符串获取资源id
- 安卓工具类-------->Toast统一管理类
- WinCE输入法 .
- leetcode_50_Pow(x, n)
- sqlite3notfound的解决办法
- liferay6.2 linux环境ext删除与重部署
- 约定优于配置
- 极光推送开发(一)
- 二叉排序树
- 欢迎使用CSDN-markdown编辑器
- 并行程序设计导论 第一章习题