zoukankan      html  css  js  c++  java
  • 【转】WinCE5.0 Platform builder 中实现中文手写 [WINCE 学习笔记]

    【转】WinCE5.0 Platform builder 中实现中文手写 [WINCE 学习笔记]

    经过几天的折腾,终于给WINCE 5.0上装上了手写输入法,总结一下。过程其实比较简单,可以是因为刚开始接触 PB,遇到任何困难都要费点时间去解决。

    概述

    WINCE上手写可以有两种方法实现,一是使用IME的输入法,另一种是单独开发一应用程序,来完成按键到字符的转换。两个工作原理如下:

    IME

    图表1

    绿色输入法

    图表2

    至于利弊就不分析了,各有所好,我觉得如果你提供系统给别人用,最好选后者。所心就尝试如何把它做到系统中去。

    开始添加之前,先要有一个能生成NK.BIN的工程,可以是开发板商提供的,也可以是你自己创建的,总之要保证能正常编译,而且运行正常。

    集成输入法

    选择你要集成的输入法,现在能作用的应该比较多,但是我试了好几个没成功,最先试成功的是捷通手写输入法, 其它的成功了再说, 可以在此下载:

    先下载吧:http://www.fs2you.com/files/735ef26b-1046-11dd-b2bd-0014221f3995/

    接下来需要完成两个步骤

    1. 设置将输入法的文件拷到要生成的IMAGE中

    2. 将注册表需要修改的文件导入进去

    打开PB工程,ParameterView->下面会有两个选项,一个是Common Files , 另一个是你的工程设置。两个中有部分文件是重名的,但作用域不一样。确切地说是作用范围不同。Common Files会作用所有的PB工程,下面的作用域小一点。 我用得是2440的板子,工程名为"mini2440", 打开后还会有两个,一个 Hardware specific Files 和 Project Specific Files , 这里文件名不重名,但后缀名相同,也是同理,作用域不同,前者作用同一硬件工程的设置,后者是特写该工程的设置。 所以,我认识,只是单独你一个工程的设置,尽量放在这里修改。但是需要明白的是,如果你在project 设置中能完成的工作,如果你修改了前面两个,也一定能实现同样的功能,只是你再新建工程的时候也生效了。所以根据你的需要选择你要修改的文件。

    手写输入法我目前只想在这个版本上实现,所以选择在project中去修改。

    将下载后得到的文件拷贝到 Release对应的目录下 *_* _Release 对应的release目录。

    放在那位置倒没有明显规定,但至少要是一个环境变量指向的目录中。 我使用用的是 _FLATRELEASEDIR,对应目录为

    X:\WINCE500\PBWorkspaces\mini2440\RelDir\mini2440_ARMV4I_Release

    如果你还不确认自己应该在那个目录里, 使用以下步骤确认:

    打开 CMD窗口,

    图表3

    输入 echo % _FLATRELEASEDIR%

    图表4

    看到的就是你的路径了。

    把下载的文件拷贝进去(包含JT.reg文件), 注,这里拷贝并不会直接生成在IMAGE中,需要设置

    图表5

    打开porject.bib 输入右边红色圈里的东西

    porject.bib中记录格式为

    表格1

    目标文件名

    源文件路径+文件名

    存储位置

    存储类型

    详细的介绍大家可以查阅 Files 文件设置格式

    图表6

    到此,编译系统的时候,会把这四个文件拷贝到目标系统的 /windows下

    下来再导入注册表:

    同样,打开 project.reg 文件, 在最后一行添加以下语句

    图表7

    好了,设置完成, 然后 ->Sysgen。

    将生成后的nk.bin下载到目标系统中,享受全屏输入法吧

    图表8

    图表9

    问题

    最后,有个问题是: 生成系统的时候,报警告:

    regcomp: Overwriting existing value [HKEY_CURRENT_USER\Keyboard Layout\Preload\1] "Default" in system registry

    regcomp: WARNING, syntax error on or near line 6515 of reginit.ini; line skipped.

    我查了一下,这是最后生成的 reginit.ini 文件中的错误,reginit.ini文件资料上说是由 common.reg, project.reg, platform.reg 合并后生成的。其错误源为:

    # Hot Key Alt + F1 For direct switch

    # IME_HOTKEY_DSWITCH_FIRST

    [HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000100]

    "VK"=dword:70

    "KM"=dword:C001

    "Ime"=dword:e0010804

    我想是不是"#" 在这里格式不对,本来应该是注释用得,可是找了半天也不知道这项是从那生成的。最后我猜想应该是选择WINCE组件时的内容,可是如何消除这 Warning, 有知道的前辈请指点。

    声明: 因为也是刚开始接触WINCE 和Platform builder ,总结中有不妥的地方,欢迎大家指正,另,有误导的地方,大家见谅。

  • 相关阅读:
    ***CSS3 Gradient渐变色(转:http://www.w3cplus.com/content/css3-gradient)
    CSS3实现边框锯齿效果
    css3超炫8种loading加载特效
    CSS3:Transition属性详解
    WebApp之Meta标签
    css3渐变色
    转:CSS设置滚动条样式
    使用Composer安装 Laravel 和 ThinkPHP
    laravel 数据库迁移
    sublime text 3 常用插件和配置
  • 原文地址:https://www.cnblogs.com/sankye/p/2766002.html
Copyright © 2011-2022 走看看