文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 171
阅读 6
收藏 0
点赞 0
评论 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
博文 2004
码字总数 14107
作品 0
深圳
程序员
Direct2D教程(十)绘制文本

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

吞吞吐吐的 ⋅ 2017/10/17 ⋅ 0

关于Direct3D11里汉字显示的一些思考

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

长平狐 ⋅ 2012/11/12 ⋅ 0

Windows桌面应用程序(1-2-4-7th) DPI和设备无关的像素

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

qq_37422196 ⋅ 01/12 ⋅ 0

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

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

迈克老狼1 ⋅ 2012/12/23 ⋅ 0

FireFox开发版本加入GPU加速文字渲染

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

小编辑 ⋅ 2010/03/03 ⋅ 0

USB启动盘制作软件--iBurnMgr

iBurnMgr是一款基于Direct2D DirectWrite开发的USB启动盘制作软件,采用流行的扁平风格,使用原生C++开发,不依赖任何第三方库,USB启动盘制作过程使用多线程技术,制作过程可以中途终止,界...

Force武装卫队 ⋅ 2014/06/18 ⋅ 4

Wine 1.7.31 发布,支持 Visual Studio 2013

Wine 1.7.31 发布,此版本是个开发版本,更新内容如下: 基于 Firefox 34 的 Gecko 引擎新版本 支持 C/C++ 运行时的 Visual Studio 2013 版本 DirectWrite 支持更多的 font metrics 更多 Di...

oschina ⋅ 2014/11/15 ⋅ 9

Wine 1.8 正式发布,DirectWrite/Direct2D 实现

Wine 1.8 正式发布,此版本包括了开发者 17 个月的努力,包括大约 13,000 个独立改进。此版本值得关注的是实现了 DirectWrite 和 Direct2D;新增 Pulse 音频驱动器。此外还有大量的改进,支持...

oschina ⋅ 2015/12/20 ⋅ 12

Wine 1.7.49 发布,更多的 OpenMP 函数

Wine 1.7.49 发布,此版本更新内容如下: DirectWrite 可以很好的在 Steam 渲染文本 大量 Direct2D 改进 更多的 OpenMP 函数 支持 IDL 编译器的命名空间 各种 bug 修复 此版本源代码现已提供...

oschina ⋅ 2015/08/08 ⋅ 5

WPF 使用 Direct2D1 画图 绘制基本图形

本文来告诉大家如何在 Direct2D1 绘制基本图形,包括线段、矩形、椭圆 本文是一个系列 WPF 使用 Direct2D1 画图入门 WPF 使用 Direct2D1 画图 绘制基本图形 本文的组织参考Direct2D,对大神表...

lindexi_gd ⋅ 04/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 33分钟前 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部