大家知道,字型檔案對於wince系統來說,一般都比較龐大,一般在2mb-15mb之間,如果在wince的nk中定製幾種字型或者大容量字型,勢必會增加nk的大小,這對嵌入式系統是不現實的。
好在wince系統提供了動態載入字型的api: addfontresource, 利用這個api函式,我們可以動態載入字型,我們可以把字型放在nand flash中,也可以放在sd卡上,因此不必擔心nk會變大,消耗寶貴的flash資源問題。而且我們可以根據需要載入多個字型(注意:如果載入的字型太多或太大,也會占用系統記憶體)。但是要注意的是,系統退出時,記得要解除安裝動態載入的字型,否則會引起記憶體洩露。應用過程中,需要注意的問題是:結構體logfont 的成員lffacename,應該為字型名,字型名在windows下,直接開啟字型,最上面一行就有字型名顯示。
閒話少說,貼上關鍵**:
#define custom_font l"storage card" /
// cfont_testdlg message handlers
bool cfont_testdlg::oninitdialog()
else
if(null!= addfontresource(xingkai_font))
else
logfont lf;
memset(&lf, 0, sizeof(logfont));
wchar lffn= text("方正準圓簡體");
wcscpy(lf.lffacename,lffn);
lf.lfheight = 20;
lf.lfwidth = 0;
lf.lfquality = cleartype_quality;
lf.lfcharset = gb2312_charset;
//hfontnew = createfontindirect(&lf);
hfontnew.createfontindirect(&lf);
getdlgitem(idc_stc_text)->setfont(&hfontnew);
return true; // return true unless you set the focus to a control}
程式退出後,記得解除安裝字型,否則會造成記憶體洩露:
if(removefontresource(custom_font))
else
afxmessagebox(l"failed to unload font!");
上述**經過本人在wince5.0模擬器和三星2440平台上測試通過。
WinCE5 0中應用程式如何直接寫屏
以deviceemulator為例,我們已經知道framebuffer的實體地址是0x30100000,大小為0x100000。那麼在應用程式中可以通過如下 直接獲取操作framebuffer的機會。1char gplcdbuf 2gplcdbuf char virtualalloc null,0x...
WinCE 5 0 的目錄結構
platform builder 5已經自帶wince 5.0,安裝過程會指定wince 5.0的安裝路徑,預設為x wince500,wince500即為wince 5.0的根目錄。根目錄下主要有以下幾個目錄 public,platform,private,pbworkspaces,others,...
WinCE5 0和WinCE6 0的編譯選項介紹
在wince5.0中,在 build os 選單中,我們會看到不同的編譯選項 sysgen build and sysgen 和 build and sysgen current bsp sysgen 不用多說,當你在 catalog 中新增或刪除了新的item的時候,就用這個吧。build and...