WinCE下定制触摸校准界面的方法

在实际应用中,经常需要定制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 } 以上所用到的字体和颜色的信息可以存储在注册表或者文件中,在触摸屏校准界面初始化时取得。 触摸校准界面的多国语言包可以在这里下载,http://download.csdn.net/source/2075027。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值