Direct2D (35) : 通过 DirectWrite 获取字体列表
生活随笔
收集整理的這篇文章主要介紹了
Direct2D (35) : 通过 DirectWrite 获取字体列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
uses Direct2D, D2D1;procedure TForm1.Button1Click(Sender: TObject); variFontCollection: IDWriteFontCollection; //字體集合iFontFamily: IDWriteFontFamily; //字族iLocalizedStrings: IDWriteLocalizedStrings; //按區域設置名稱編制索引的字符串集合i,j: Integer;buf: array[0..LF_FACESIZE] of Char; beginListBox1.Clear;DWriteFactory.GetSystemFontCollection(iFontCollection);for i := 0 to iFontCollection.GetFontFamilyCount - 1 dobeginiFontCollection.GetFontFamily(i, iFontFamily);iFontFamily.GetFamilyNames(iLocalizedStrings);for j := 0 to iLocalizedStrings.GetCount - 1 dobeginiLocalizedStrings.GetString(j, buf, Length(buf));ListBox1.Items.Add(buf);end;end; end;procedure TForm1.Button2Click(Sender: TObject); variFontCollection: IDWriteFontCollection;iFontFamily: IDWriteFontFamily;iLocalizedStrings: IDWriteLocalizedStrings;buf: array[0..LOCALE_NAME_MAX_LENGTH] of Char;cn: string;n: Cardinal;b: LongBool;i: Integer; beginListBox1.Clear;LCIDToLocaleName(GetUserDefaultLangID, buf, Length(buf), 0);cn := buf; //'zh-CN'DWriteFactory.GetSystemFontCollection(iFontCollection);for i := 0 to iFontCollection.GetFontFamilyCount - 1 dobeginiFontCollection.GetFontFamily(i, iFontFamily);iFontFamily.GetFamilyNames(iLocalizedStrings);iLocalizedStrings.FindLocaleName(cn[1], n, b);if not b then Continue;iLocalizedStrings.GetString(n, buf, Length(buf));ListBox1.Items.Add(buf);end; end;
效果圖:
轉載于:https://www.cnblogs.com/del/archive/2011/04/11/2012802.html
總結
以上是生活随笔為你收集整理的Direct2D (35) : 通过 DirectWrite 获取字体列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vbs脚本编程与windows批处理命令
- 下一篇: POJ 3349 Snowflake S