一、克隆
2、修改相关文件
将CalibrUi文件夹下 postlink.dat文件
dir /AD /B %_PROJECTOAKROOT%\files\INTLTRNS >
obj\%_TGTCPU%\%WINCEDEBUG%\clone_locales.txt
改为:
dir /AD /B %_PUBLICROOT%\COMMON\OAK\LIB\%_TGTCPU%\%WINCEDEBUG% >
obj\%_TGTCPU%\%WINCEDEBUG%\clone_locales.txt
3、修补微软漏洞
1、直接用VS2005打开 \WINCE600\PUBLIC\DCOM\CESYSGEN\makefile。
2、通过 CTRL-R, CTRL-W可以显示空格或制表符。
3、用空格替换所有的制表符。
4、保存文件。
4、快速编译pubic下触屏界面代码
sysgen -p common gwes
5、验证编译结果
编译完成后通过VS2005打开gwes.dll文件,查看资源文件即可知晓
6、修改校准语言
通过记事本格式打开CalibrUi_clone.rc,添加或修改原有的校准语言即可
7、提供语言切换接口
a. 支持动态切换,简单配置即可显示不同内容,如下
void
TouchCalibrateUI_DrawMainScreen(
HDC hdc
)
{
UINT IdStringBase;
CalibruiLanguage = *pMapCalibruiPointer;
// Figure out string resources based on whether keyboard is enabled.
switch(CalibruiLanguage)
{
case Chinese_TW:
IdStringBase = IDS_CALIBRATION_CHINESE_TW_MAIN_1;
break;
……
case Spanish:
IdStringBase = IDS_CALIBRATION_SPANISH_MAIN_1;
break;
default:
IdStringBase = IDS_CALIBRATION_CHINESE_MAIN_1;
break;
}
TouchCalibrateDrawScreenText(hdc, C_CALIBRATION1_LINES, IdStringBase);
return;
}
b. 添加需要显示的各种语言版本的内容。
c. 通过进程间通信(内存共享),应用程序可修改语言配置。如下,默认语言为英文
static DWORD CalibruiLanguage = English;
static HANDLE hMapFile;
static PDWORD pMapCalibruiPointer;
hMapFile= CreateFileMapping(HANDLE(0xFFFFFFFF), NULL, PAGE_READWRITE, 0, sizeof(DWORD), _T("Calibrui"));
pMapCalibruiPointer = (PDWORD) MapViewOfFile(hMapFile, FILE_MAP_ALL_ACCESS, 0, 0, 0);
注意事项
1、编译。
如果是调试的话,可通过命令行快速编译,修改好后需要sysgen,否则下次使用copy files to release floder动作时,将会使用上次sysgen的gwes.dll文件。
2、ID冲突。
注意这些ID不要和其它的gwes ID有冲突,若占用了gwes的一些ID,如提示信息“确定”,“取消”,可能会显示到触摸屏某些提示的内容。
3、命名。
不要移动移植后的代码,也不要更改移植后的文件夹得名字。
4、移植。
克隆好代码其它wince平台可直接使用。