WinCE 触摸屏校准界面克隆与定制

本文介绍如何在WinCE系统中克隆并定制CalibruiModule,实现触摸屏校准界面的修改,包括UI调整及控制操作改进,并分享了在定制过程中遇到的问题及其解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://hi.baidu.com/ch%5Fff/blog/item/ac84ee454259b944500ffe07.html

 

 

WINCE触摸屏校准界面的克隆与定制:

本文转载自http://www.bloger.com.cn/user7/jony2008/373087.html

问题描述:
怎样在定制系统时,把Calibrui Module克隆出来。再根据软件需求,来更改触摸屏校准时的UI及控制操作等。

先说方法吧。WinCE的文档中的“How to Replace the Calibrui Module”有说明怎么做的步骤。先在PB中把Calibrui Module克隆,便会生成CalibrUi[gwe2 clone]这个Project。我们要做的修改都在这个Project中。修改完后,点Build OS中的Sysgen。好了,搞定了。

方法很简单吧。但是好事多摩嘛,在做的过程中会碰到好多问题。我把我遇到的问题及解决方法写下来了。可供参考。

首先,从迷茫中寻求解决方案。刚碰到触摸屏校准问题,一头雾水。不知道怎么做。

我本来想应该是驱动做好了Calibrate这个功能,再引出一个接口,应用层来控制UI并调驱动给的接口来启动Calibrate。我忽略了OS 的存在。构架的思想还是不好。正确的应该是OS中来封装一个Calibrate模块,引出Calibrui Module,做为UI接口,让开发人员可以在此做动作,更改UI及控制。这样真的挺好。对于移植性,和模块化等都起作用。

迷茫无助之际,上网搜解决办法。网上基本上都只提到直接用TouchCalibrate这个函数便行。可是这个函数只能启动OS中的 Calibrate,而此时便想,既然这个函数可以调起Calibrate,那应该Calibrate的UI控制也是这个函数控制的吧。这个想法是对了。 于是乎,想找出TouchCalibrate()的代码来看,改下它所控制的UI。真可悲,找不到TouchCalibrate()的代码。不知道是我没 找到,还是微软没开放此代码。如果是的话,那就难怪大家会说微软不厚道。为怎么会这么想呢?因为郁闷呀,费了好大心思,结果微软告诉你,哈哈,你想要的答 案我不跟你说。困惑之中,亮光惊现。“书中自有颜如玉”,女神还是从文档中走出来了。找到了“How to Replace the Calibrui Module”。得到的经验:碰到问题还是老实的,认真地看文档,从文档中找着的方案应该是最可能解决你的问题的。网上搜来的方案只能参考,一定得弄懂它 解决的是什么问题。可惜的是,网上大多文章只是说自已的方法,而不说此方法能搞定什么问题。

其次,有了“How to Replace the Calibrui Module”,便要验证其可行性。把UI的提示信息改成了中文便来做测试。此时便是Build OS->Sysgen时碰到的问题了。这是最费时间的了。Sysgen一次要十几分钟呀。人在等待时,时间便变老了,走得慢了。Sysgen Debug通不过,此问题还没解决,不知道为什么。所以不能单步调试了,只能Sysgen Release来试。Sysgen Release通过了,但是校准时,还是出不来中文。郁闷,女神不灵呀。组长解决了此问题,让女神成真神。他查到Sysgen时的错误信息里面有找不到 CalibrUi_clone.rc。于是,手动将CalibrUi_clone.res copy一份到%WINCE500%/PBWorkspaces/%OS _DesignName%/CalibrUi/obj/ARMV4I/retail的0409和0804文件夹中。(我定制的OS语言选了中,英文。 0804,0409分别代表中,英文)。好了,Sysgen通过了,校准中文提示也出来了。经验就可省时间,就是财富。组长调程序,查错的能力值得我学。 我第一次用PB,碰到错误就傻眼了,不知道怎么调。再提醒一点,如果改了CalibrUi_clone.rc,要再次手动将上面两文件夹中的 CalibrUi_clone.rc替换。还有改了CalibrUi[gwe2 clone]后。要将%WINCE500%/PBWorkspaces/%OS _DesignName%/RelDir/smdk2443_ARMV4I_Release文件夹清空,到少要将gwes.exe删除。要不再次 Sysgen时,gwes.exe不会更新。也就是说你看不到你想要的结果。可能你要说我得把clean before building勾上。告诉你,我确实勾上了。这应该是微软的bug吧。可是组长说我们用的PB没有打过补丁。不知道此问题现在是否还有广泛性。

最后,看到了光明大道之后。便是沿着此方法根据需求改UI了。我主要改了CalibrUi.cpp和CalibrUi_clone.rc。CalibrUi.cpp主要函数的功能我介绍下。要改它,肯定要先清楚它是做什么的。
TouchCalibrateUI_Initialize做初始化。保存两个全局变量。
TouchCalibrateUI_DrawMainScreen打印校准操作说明信息。
TouchCalibrateUI_HandleUserInputMessage捕捉屏幕事件并做相应操作。
TouchCalibrateUI_DrawConfirmationScreen打印新校准测定之后,提示是否保存。
TouchCalibrateUI_WaitForConfirmation等待用户决定并打印相关信息。
这面五个函数是按被调用启动的先顺序列出来的。
TouchCalibrateUI_DrawMainScreen 和TouchCalibrateUI_DrawConfirmationScreen都调用了 TouchCalibrateDrawScreenText。TouchCalibrateDrawScreenText是用来把字符串打到屏幕上。我主 要在这个函数中做了相应的更改。如改屏幕背景色,改打印出来的字的颜色等。

从此困扰已久的屏幕校准问题终于解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值