定製wince平台支援多語言的系統,需在pb的local裡新增對應的區域和語言編號。
如果只需在應用程式中實現多種語言和時區的切換,我們通常需要如下資訊
定義如下結構體:
(封裝每一種語言的屬性)
struct
oem_language =
//中文簡體
,_t("china standard time") },
//中文繁體
,_t("****ei standard time")},
選定某種語言後,儲存name,charset,codepage資訊到登錄檔,方便所有應用程式呼叫。
新增字型:
支援多語言的應用程式,需要有對應的字型檔案,但字型檔案過於龐大時,可以放在nand flash或者外部儲存卡上。當程式啟動時,新增所有需要的字型檔案,呼叫api函式:
如: addfontresource(l"storage card//simsun.ttc");
建立字型:
根據語言型別和新增的字型資訊得到 charset值和fontfacename字型名稱
如:charset = gb2312_charset,fontfacename = l"simsun";
createfont建立簡體中文本型
切換語言:
1.得到所有語言種類的個數: num= sizeof(oem_language) / sizeof(oem_language[0])
2.根據當前語言name或codepage資訊計算索引號index,可以在num範圍內向前或向後遍歷。
3.選定語言後,儲存name,charset,codepage資訊
4.傳送廣播訊息通知所有應用程式包括自己
::postmessage(hwnd_broadcast, wm_fontchange, 0, 0);
應用程式收到wm_fontchange後,建立新的字型
5.設定系統時區(如果需要)
設定系統時區:
struct regtimezoneinformation
rtzi;
time_zone_information timezone;
讀取登錄檔hkey_local_machine//time zones//+oem_language.timezonekey路徑 "tzi"項資訊到rtzi中。
timezone.bias = rtzi.bias;
timezone.standardbias = rtzi.standardbias;
timezone.daylightbias = rtzi.daylightbias;
timezone.standarddate = rtzi.standarddate;
timezone.daylightdate = rtzi.daylightdate;
儲存timezone.standardname值到 登錄檔項"std"
儲存timezone.daylightname 值到 登錄檔項"dlt"
呼叫api函式 settimezoneinformation(&timezone);
結束。。
WINCE下如何診斷應用程式崩潰
無論你是乙個單純的電腦使用者還是一名高階軟體工程師,都一定對程式崩潰不陌生。做為一名windows ce應用程式開發者,你也一定遇到過下圖這種場景 這個對話方塊告訴你,有乙個叫installer.exe的程式在位址00019320處崩潰了。如果這個程式歸你負責,那麼你的問題就來了 怎麼找出這個bug...
WinCE應用程式的開發
wince應用程式的開發是wince開發中很重要的乙個環節。本文將簡單介紹一些wince應用程式開發的基本概念。先說開發工具,目前用得比較多的開發工具有evc4 sp4 vs2005 vs2008和platform builder。其中platform builder主要是用來定製作業系統的,雖然也...
C 呼叫外部應用程式
呼叫外部程式 1先初始化要啟動的程序 processstartinfo 指定啟動程序時使用的一組值。processstartinfo startinfo new processstartinfo hh.exe decompile.2隱藏程序被啟動是的方式 startinfo.windowstyle ...