作者:xiaolei05

转自:http://blog.csdn.net/xiaolei05/article/details/6582203

在实际应用中,经常需要定制WinCE系统的屏幕校准界面。最常见的需求就是根据系统的语言设置校准界面。要实现这个功能,大概有两种方法,一是自己实现校准程序,完全取代WinCE系统的校准界面,第二种是修改WinCE系统自带的校准界面。相比之下,第二种方法较为简便,而这部分的代码是公开的,也有实现的可能。下面就简单介绍一下修改WinCE自带校准界面的方法。
1.备份目录C:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\CALIBRUI下的CalibrUi.cpp文件;
2.修改CalibrUi.cpp文件;
3.在VS2005的解决方案资源管理器中浏览到C:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\CALIBRUI,选中CALIBRUI,点击右键,在弹出菜单中选择Rebuild;
4.打开工程目录下的Wince600\PLATFORM_ARMV4I\cesysgen\oak\target\ARMV4I\retail目录,注意其中PLATFORM_ARMV4I随BSP不同而异;
5.在VS2005的菜单中选择“生成”——“Advanced Build Commands”——“Sysgen”菜单;
6.监视Wince600\PLATFORM_ARMV4I\cesysgen\oak\target\ARMV4I\retail目录下的gwes.dll文件,如果gwes.dll被更新了,选择“生成”——“取消”菜单,结束Sysgen,监视是人工的,做这一步主要是节省编译的时间,而不必重新Sysgen整个工程;
7.将刚刚生成的gwes.dll文件拷贝至工程目录下的RelDir\PLATFORM_ARMV4I_Release下,替换原来的gwes.dll文件,其中PLATFORM_ARMV4I_Release随BSP不同而异;
8.点击VS2005的“生成”——“Make Run-Time Image”菜单,使用新的gwes.dll,生成新的NK;
9.固化新生成的NK,并进入校准界面进行测试。

下面以定制界面语言为例,简单介绍一下实现的关键代码及步骤。首先将各个语言包编译成单独的DLL。在TouchCalibrateUI_Initialize()中根据系统语言加载特定的语言包,并替代系统默认加载的资源句柄,参考代码如下。
1 hInstRes = LoadLibrary(szLanResFile);
2 if (hInstRes)
3 {
4 s_hinst = hInstRes;
5 }

其中szLanResFile是根据系统语言选择的校准界面的资源包。对于大多数语言来说,这就可以正常使用了。但对于日文、韩文和繁体中文来说,由于WinCE系统没有自带对应的字体,在修改后可能会出现一些乱码,如□□,所以还需要添加有关字体的代码。参考代码如下。
1 AddFontResource(szFontFile);
2
3 LOGFONT lf;
4 memset(&lf, 0, sizeof(LOGFONT));
5 wcscpy(lf.lfFaceName,szFaceName);// 初始化字体名称
6 lf.lfHeight = lfHeight; // 设置字体的高度
7 hFont = CreateFontIndirect(&lf); // 创建字体
8
9 // 使用创建的字体
10 if (hFont)
11 {
12 hFontOld = (HFONT)SelectObject(hdc,hFont);
13 }

除了动态修改语言之外,还可以修改背景颜色和字体的颜色。参考代码如下。
1 hBrush = CreateSolidBrush(dwBKColor);
2 if (hBrush)
3 {
4 hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);
5 }
6
7 hPen = CreatePen(PS_SOLID,0,dwBKColor);
8 if (hPen)
9 {
10 hOldPen = (HPEN)SelectObject(hdc,hPen);
11 }
12
13 SetBkMode(hdc,TRANSPARENT);
14 SetTextColor(hdc,dwTxtColor);
15
16 ...
17
18 if (hBrush)
19 {
20 SelectObject(hdc,hOldBrush);
21 DeleteObject(hBrush);
22 }
23
24 if (hPen)
25 {
26 SelectObject(hdc,hOldPen);
27 DeleteObject(hPen);
28 }

以上所用到的字体和颜色的信息可以存储在注册表或者文件中,在触摸屏校准界面初始化时取得。

定制WinCE系统的屏幕校准界面相关推荐

  1. wince 系统定制

    首先安装好wince开发环境,具体的安装方法在我的另一篇博客里有介绍,http://blog.csdn.net/gaoyang610/article/details/8840995 现在我们开始定制w ...

  2. WinCE系统深度定制汇总

    WinCE应用程序崩溃提示框的处理 WinCE6.0多国语言软键盘 定制WinCE6.0标准界面的一种方法 如何禁用WinCE下的沙漏图标 Silent RNAApp.exe for WinCE6.0 ...

  3. Wince Linux 屏幕校准

    FL2440下触摸屏校准问题 收藏 没想到飞凌的开发板,默认出货的时候是没有校屏的.包括WINCE和LINUX.这里分享下校屏的经验. 一:WINCE之校屏 WINCE的校屏参数是保存在注册表中的.打 ...

  4. WinCE系统声音定制

    作者:ARM-WinCE 2010的第一篇Blog,介绍一下WinCE系统声音的定制.说白了,就是设置注册表.WinCE系统启动的开机音乐,点击触摸屏以及键盘输入的按键音,还有系统运行过程中的各种声音 ...

  5. iOS15绕过激活锁,屏幕锁界面完美隐藏工具TiggerRamDisk3.7,支持最新iOS15.5系统

    TiggerRamDisk3.7这是一款可以绕过激活锁.屏幕锁界面完美隐藏的工具,也可以解决手机或者平板无法激活的问题,支持最新的iOS15.5系统. 目前支持的型号: 需要工程线 iPhone:SE ...

  6. win8.1计算机图标不见了怎么办,win8.1 开始屏幕metro界面里的桌面图标找不到了怎么办-系统操作与应用 -亦是美网络...

    现在用win8.1系统的同学越来越多了,但是对新系统的操作应用比较熟练的却知之甚少,就拿win8.1的metro界面举个例子吧,大家都知道可以在这里自定义自己喜欢的metro界面,比如右键某个图标选择 ...

  7. android系统二次开发,Andorid系统二次开发界面

    Andorid系统二次开发界面 给大家介绍完外观,下面我们一起再来看下魅族MX的系统界面.本次魅族MX仍然采用的是Andorid操作系统,并且加入了二次开发界面.UI界面整体上保持了和M9的特色,不过 ...

  8. 计算机屏幕变红色,win7系统电脑屏幕变成红色的设置技巧

    win7系统使用久了,好多网友反馈说win7系统电脑屏幕变成红色的问题,非常不方便.有什么办法可以永久解决win7系统电脑屏幕变成红色的问题,面对win7系统电脑屏幕变成红色到底该如何解决?其实只需要 ...

  9. 国内定制android系统吗,同样都是基于Android系统 国产定制系统差异有多大?

    目前国产手机的操作系统都是基于谷歌的Android系统深度定制的,每个厂商在进行定制时便产生了差异,也有了自家的特色功能.现在笔者手上就有荣耀V10和vivo Z3两款手机,所以今天就给大家带来这两款 ...

最新文章

  1. C++抽象基类和纯虚成员函数
  2. 如何组织公司的线下活动
  3. AAAI 2021 | 关键词指导的神经对话模型
  4. python调用java方法_python加载和使用java的类的方法
  5. android -support-v4.jar是什么文件
  6. 淘宝开发平台知识点一,入门指南
  7. Mybatis源码阅读(一):Mybatis初始化1.1 解析properties、settings
  8. linux x64下安装oracle 11g
  9. centos下docker无法正常启动检查与解决方法
  10. 生产环境apache2整合tomcat动静分离
  11. mysql多实例my.cnf_mysql多实例,my.cnf 4G conf配置安装配置
  12. python手机连点器代码_【触动精灵】手机万能连点器 Lua 源码
  13. html感应手机陀螺仪,详解手机上的光线感应器、三轴陀螺仪等各传感器
  14. 回想那天让我虎躯一震的bug:Mybatis Ognl引起的异常
  15. Sony Ericsson W550c
  16. three.js贴图之CubeTextureLoader全景贴图
  17. thawte,globalsign,alphassl,rapidssl,geotrust,digicert证书品牌的对照
  18. 【Hyperledger Fabric】学习笔记1—— 区块链介绍
  19. 学遍天下所有的技术,可能吗?
  20. 力扣 两数相加 C语言 题解

热门文章

  1. pythonencoding etf-8_Python 金融: 用Groupby理解 上证50ETF
  2. 后端开发学习阶段总结
  3. 如何在网页中浏览和编辑DWG文件 梦想CAD控件 www.mxdraw.com
  4. 自用的资产组合多因子业绩归因框架
  5. 100.用模板创建镜像 容器、仓库、数据管理
  6. 飞利浦43php5292,说说使用感受飞利浦43PFF5292T3质量如何?分析怎么样?爆料真实使用心得...
  7. DC-DC升压IC芯片
  8. 开启简单的web服务器成为文件下载服务器
  9. 计算机网络原理 王志文,王志文-西安交通大学计算机科学与技术学院
  10. 《JavaScript编程精解》--读书笔记