公司产品屏幕大小是320*240,然而windows ce 4.2所适应的大小只有两种,一是480*320(landscape mode);而是240*320(portrait mode).无论采用那种模式,都无法适应公司的产品.
在测试中发现,控制面板的所有选项以及某些弹出对话框都无法正确自适应屏幕.由此第一步打算从控制面板的组件下手.然而第一步尝试就遇到了困难,rc文件的格式不能采用微软的编程工具打开,因为用此类工具(VC,EVC,PB)进行修改后保存,会添加甚至改写不少东西;虽然在命令行中可以顺利编译通过,但到连接系统映像这步会产生duplicate声明错误(估计是那些编程工具改写了类型),以至于无法打开.所以,如果要修改rc文件中的控件大小,就只能采用文本工具编辑,比较麻烦.并且,最为关键的是,修改了rc资源文件,并且命令行编译组件通过以后,到系统连接那步根本没有连接我所想要的obj文件.按理说,中文平台,应该是连接底下的0409文件夹下面的obj文件才对,可现在不知道它连接到底下哪个文件夹去了.(不知道有谁可以告诉我么?谢谢)
突然想到,那些弹出界面不合适的对话框,无非都隐藏在这几个文件类型里:exe,cpl,dll;然后又想到ce下面的文件格式和PC平台下的是一样的.既然如此,那么pc机子上的一个著名用来本地化的软件是不是也可以使用在ce文件上呢?于是打开eXeScope,把cplmain.cpl进行修改,编译系统通过,运行,ok,一切如我们所想!这样的好处是显而易见的,可视化改变大小,绝对比采用文本编辑工具打开要灵活方便;但不足之处也是很明显,只能针对某个语言区域,并且如果某个dll文件中添加了别的选项,那必须再次修改dll文件.所以,这只能说是治标不治本的方法,但用来应急是够了.
但在使用过程中,发现如下一些问题:
ceshell.dll 如果采用portrait模式生成的DLL修改,"删除"的对话框会出现一些怪问题,按钮不对齐,对话框明显拉小;而采用landscape模式,又不能修改"文件夹选项"对话框的大小,否则标题栏的"OK"键消失;综合如此,选择landscape模式的dll更为适合,虽然有小小瑕疵,但相对于portrait模式下"动一发而牵全身"(随便修改一个对话框,"删除"的对话框都会异常)的状况要好多了.
intll.cpl,intlp.cpl (区域选项)在资源文件直接修改没有作用,估计是在代码中直接修改的.根据产品屏幕的大小,直接取landscape模式的来替代,虽然宽度长了些,但总比看不全又拖不了为好.
一些其它的DLL:
netui.dll网络的UI,里面有无线设置的
WTResources.dll:好像是office组件的一些插件,有不同大小版本
WinCE 系统界面修改偏方(一)
最新推荐文章于 2013-05-17 08:33:12 发布