备注:用RDP表示远程桌面
WINCE6.0自带的远程桌面在我们显示屏分辨率为240*320上有一部分内容无法显示出来,所以就需要调整界面让这些内容可见。
1. PB6.0不支持对远程桌面资源文件的修改,PB5.0可以
刚开始是用PB6.0修改,但修改后没有生效,后来找到\WINCE600\PUBLIC\RDP\OAK\CETSC\readme文件,其中下面的内容才知道是PB6.0不支持对远程桌面界面资源文件cetscbase.res的修改
[Modules containing the UI resources]
===============================================================================
The RDP6 UI in Windows Embedded CE comesfrom two modules:
- cetsc.exe (cetscbase.res)
- mstscax.dll (tscaxctrl.res)
In general, the OEM can edit the res fileunder
public\rdp\oak\lib\%_TGTCPU%\%wincedebug%\%Locale%
to adjust the UI. For example, OEM canchange the dialog box template or a string
in this way.
Any changes to existing strings would needbe localized by the OEM making the
change.
If the OEM chooses to edit the res filewith Visual Studio, currently only the
res file saved by Platform Builder 5.0 issupported. The res file saved by
Platform Builder 6.0 cannot be used.
2. 修改资源文件及编译过程中遇到的问题
2.1 注释掉打开RDP
因为WINCE6.0桌面程序一打开就显示沙漏,这点很不合理,找到对应的代码,修改如下:
⑴ \WINCE600\PUBLIC\RDP\OAK\UIT\TSCONMAN\applicationproperties.cpp
注释掉CApplicationPropPage::WriteRegistrySettings()中下面的代码:
// Put up the wait cursor
//HCURSORhOldCursor = SetCursor (LoadCursor (NULL, IDC_WAIT));
// Remove the wait cursor
//SetCursor(hOldCursor);
⑵ \WINCE600\PUBLIC\RDP\OAK\UIT\TSCONMAN\connectionproperties.cpp
注释掉CConnectionPropPage::WriteRegistrySettings()中下面的代码:
// Put up the wait cursor
//HCURSORhOldCursor = SetCursor (LoadCursor (NULL, IDC_WAIT));
// Remove the wait cursor
//SetCursor(hOldCursor);
⑶ \WINCE600\PUBLIC\RDP\OAK\UIT\TSCONWIZ\tsconwiz.cpp
注释掉TsConnectionWizard::WriteSettings()中下面的代码:
// Remove the wait cursor
//SetCursor(hOldCursor);
2.2 编译出错问题
把这些文件修改后,到\WINCE600\PUBLIC\RDP右键,选择Rebuild and Clean Sysgen,可能会莫名其妙的编译出错,信息如下:
CEBUILD: Running sysgen -p rdppreproc
Starting sysgen phase for project (rdp )
\WINCE600\build.err
其实我们修改的代码没有错误,这就是微软VS2005典型的无须有编译出错,恢复为原来的编译就OK了,然后再替换为编译之后的就可能OK了。
2.3 英文系统和其他系统编译链接的不同
用PB6.0分别修改RDP\OAK\LIB\ARMV4I\RETAIL\0804(中文简体)、0404(中文繁体)、0409(英语)、0419(俄语)的cetscbase.res,编译步骤如下:
⑴到\WINCE600\PUBLIC\RDP右键,选择Rebuildand Clean Sysgen,在release目录下编译生成新的cetsc.exe文件,对于中文简体、中文繁体和俄语系统来说,调整的界面都生效(只不过是显示英文而已,应为还没有进行最后系统针对当前语言的链接),但是英文的就时钟还是之前显示不全的界面。后来发现在RDP\OAK\LIB\ARMV4I\RETAIL目录下还有cetscbase.res这个文件,然后也把RDP\OAK\LIB\ARMV4I\RETAIL\0409目录下的cetscbase.res文件替换此文件,重新Rebuildand Clean Sysgen就OK了。
为了节省时间,我们从这种办法先调整好之后再进行下面的编译。
⑵选择sysgen或是cleansysgen编译整个工程,这时候新的NK中的远程桌面就是对应语言下调整过的界面了。