新增winods臨時字型的方法

2021-06-17 16:27:10 字數 2369 閱讀 4062

1.使用 addfontresource 把您的字型送入 windows 字型列表。

例如:addfontresource("c:\xx.ttf");   

這個函式在你的函式中只要呼叫一次就行了,這時系統的字體表中會增加該字型,注意這時載入的這個字型,在其他應用程式中也會看到,   

所以記得要在退出程式呼叫   

removefontresource("c:\xx.ttf");   

否則該字型會一直駐留在系統當前載入的字體表中。   

如果你不想讓其他應用程式在你載入了該字型檔案後也能使用該字型,可以使用   

addfontresourceex()當然對應的也有removefontresource()函式。   

其中有個引數可以配置成只有當前程式可以使用載入的字型,不過這個函式只支援2000/xp。 

接下來就是

font.createfontindirect(&lf);  

oldfont = pdc->selectobject(&font);

logfont lf;

lf.lfheight = 240;

lf.lfwidth = 120;

lf.lfescapement = m_ang;

lf.lforientation = m_ang;

lf.lfweight = 520;

lf.lfitalic = 0;

lf.lfunderline = 0;

lf.lfstrikeout = 0;

lf.lfcharset = gb2312_charset;

lf.lfoutprecision = 0;

lf.lfclipprecision = clip_stroke_precis;

lf.lfquality = 0;

lf.lfpitchandfamily = 0;

strcpy(lf.lffacename, "字型名");

font.createfontindirect(&lf);

oldfont = pdc->selectobject(&font);

永久安裝使用,類似下面的**:     

cstring ssourcedir = "d:\\tt6\\ "; //.ttf file name.     

cstring sfontname = "金梅粗圓體(truetype) ";

tchar swindir [max_path];

getwindowsdirectory(swindir,max_path);

cstring sfontdir(swindir);

sfontdir += "\\fonts\\ ";

cstring sfotfile = sfontdir;

sfotfile += (sfontfilename.left(sfontfilename.getlength()-4) + ".fot ");

copyfile((ssourcedir + sfontfilename),(sfontdir + sfontfilename),false);

bool result;

result = createscalablefontresource(0, sfotfile, sfontfilename, sfontdir);

result = addfontresource(sfotfile);

hkey phkresult;

dword regresult;

long rlt = regcreatekeyex(hkey_local_machine,

"software\\microsoft\\windowsnt\\currentversion\\fonts ", 0, "reg_sz ",

0, key_write, 0, &phkresult, ®result);

if(rlt != error_success)

regsetvalueex(phkresult, sfontname, 0, reg_sz,

(const byte* )((lpctstr)sfontfilename), sfontfilename.getlength());

regclosekey(phkresult);

::sendmessage(hwnd_broadcast, wm_fontchange, 0, 0);

deletefile((sfontdir + sfontfilename));

ubuntu 新增字型的無敵快捷方法

全過程就比 windows 多1個步驟,linux 有什麼不好嘛。首先呢,基於 ubuntu 的 policy,在 terminal 中用root開啟 nautilus 在這裡僅僅用gnome做演示了 sudo nautilus 然後呢,去 usr share fonts truetype 把你想要...

iOS開發給應用新增新字型的方法

拿到字型包檔案 字尾名為.ttf,或.odf 把字型庫匯入到工程的resouce中 在程式新增以下 輸出所有字型 nsarray familynames uifont familynames for nsstring familyname in familynames 假如你加入的字型為微軟雅黑,這...

IOS 新增自定義字型方法詳解

1 獲取字型檔案 2 將fzltxh.ttf檔案拷貝到工程中 3 在info.plist中新增項 fonts provided by application uiappfonts 可以新增乙個或多個item,如 item0 fzltxh.ttf 4 找出真正的字型名稱 因為使用字型時,要使用字型的真...