WINCE5 0應用程式字型的動態載入

2021-09-30 05:05:19 字數 1305 閱讀 9705

大家知道,字型檔案對於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...