文档章节

Direct2D (35) : 通过 DirectWrite 获取字体列表

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 171
阅读 6
收藏 0

uses Direct2D, D2D1;

procedure TForm1.Button1Click(Sender: TObject);
var
  iFontCollection: IDWriteFontCollection;     //字体集合
  iFontFamily: IDWriteFontFamily;             //字族
  iLocalizedStrings: IDWriteLocalizedStrings; //按区域设置名称编制索引的字符串集合
  i,j: Integer;
  buf: array[0..LF_FACESIZE] of Char;
begin
  ListBox1.Clear;
  DWriteFactory.GetSystemFontCollection(iFontCollection);
  for i := 0 to iFontCollection.GetFontFamilyCount - 1 do
  begin
    iFontCollection.GetFontFamily(i, iFontFamily);
    iFontFamily.GetFamilyNames(iLocalizedStrings);
    for j := 0 to iLocalizedStrings.GetCount - 1 do
    begin
      iLocalizedStrings.GetString(j, buf, Length(buf));
      ListBox1.Items.Add(buf);
    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  iFontCollection: IDWriteFontCollection;
  iFontFamily: IDWriteFontFamily;
  iLocalizedStrings: IDWriteLocalizedStrings;
  buf: array[0..LOCALE_NAME_MAX_LENGTH] of Char;
  cn: string;
  n: Cardinal;
  b: LongBool;
  i: Integer;
begin
  ListBox1.Clear;
  LCIDToLocaleName(GetUserDefaultLangID, buf, Length(buf), 0);
  cn := buf; //'zh-CN'
  DWriteFactory.GetSystemFontCollection(iFontCollection);
  for i := 0 to iFontCollection.GetFontFamilyCount - 1 do
  begin
    iFontCollection.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;


效果图:



本文转载自:http://www.cnblogs.com/del/archive/2011/04/11/2012802.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
关于Direct3D11里汉字显示的一些思考

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/8147234 作者:毛星云 邮箱: happylifemxy@163.com 这篇文章里,浅墨希望与大家一起...

长平狐
2012/11/12
794
0
Direct2D教程(十)绘制文本

概述 在Direct2D中,文本的绘制是通过DirectWrite来实现的,DirectWrite实际上已经是一个独立的DirectX组件了。关于DirectWrite,我摘录了MSDN的一段文字。 DirectWrite介绍 当今的应用程序应...

吞吞吐吐的
2017/10/17
0
0
Windows桌面应用程序(1-2-4-7th) DPI和设备无关的像素

要使用Windows图形进行有效编程,您必须了解两个相关的概念: 每英寸点数(DPI) 设备无关像素(DIP)。 我们从DPI开始。这将需要短暂的绕行排版。在印刷术中,类型的大小以称为点的单位来测量。一点...

qq_37422196
01/12
0
0
深度解读 - Windows 7核心图形架构细致分析(转贴)

原帖地址:http://technet.microsoft.com/zh-cn/library/ee921514.aspx 如现在大家所想的那样, Windows7 其实是 Windows Vista 的改进版。 Windows 7 在 Windows Vista 的基础上进行了大量的...

迈克老狼1
2012/12/23
0
0
FireFox开发版本加入GPU加速文字渲染

全球第二大浏览器厂商FireFox在最近的nightlyBuilds 中加入了一项令人激动的功能——GPU加速网页文字渲染。通过该功能,不仅仅可以大幅度提升网页上文字渲染的速度,还可以让字体更加美观、平...

小编辑
2010/03/03
401
0

没有更多内容

加载失败,请刷新页面

加载更多

Ubuntu16.04下安装docker

[TOC] 本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版,是开发人员和小型团队的理想选择。 1. 开始安装 1.1 由于...

豫华商
45分钟前
5
0
使用XShell工具密钥认证登录Linux系统

如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥。哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方...

dragon_tech
57分钟前
3
0
day178-2018-12-15-英语流利阅读-待学习

“真蛛奶茶”了解一下?蜘蛛也会产奶了 Lala 2018-12-15 1.今日导读 “蛋白质含量是牛奶的 4 倍,并有着更低的脂肪和含糖量”,听起来诱人又美味的并不是羊奶或豆奶,而是你可能打死都想不到...

飞鱼说编程
今天
10
0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents

场景重现 npm install --verbose 安装依赖的时,出现如下警告 强迫症患者表示不能接受 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):npm WARN......

taadis
今天
2
0
OSChina 周六乱弹 —— 你一口我一口多咬一口是小狗

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文 :分享Roy Orbison的单曲《She's a Mystery to Me》 《She's a Mystery to Me》- Roy Orbison 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
398
6

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部