FontCollection::GetFamilies 方法 (gdiplusheaders.h)

FontCollection::GetFamilies 方法获取此字体集合中包含的字体系列。

语法

Status GetFamilies(
  [in]  INT        numSought,
  [out] FontFamily *gpfamilies,
  [out] INT        *numFound
);

参数

[in] numSought

类型: INT

指定此字体集合中字体系列数的整数。

[out] gpfamilies

类型: FontFamily*

指向接收 FontFamily 对象的数组的指针。

[out] numFound

类型: INT*

指向接收在此集合中找到的字体系列数的 INT 的指针。 此数字应与 numSought 值相同。

返回值

类型: 状态

如果该方法成功,则返回 Ok,这是 Status 枚举的元素。 如果方法失败,它将返回 Status 枚举的其他元素之一。

注解

字体系列由具有相关样式的单个字体类型组成。 单一字体类型的一个示例是 Arial Regular。 字体系列的一个示例是一组包含 Arial Regular、Arial Italic 和 Arial Bold 样式字体的字体。

示例

以下示例创建 一个 PrivateFontCollection 对象,获取集合中包含的 FontFamily 对象,并使用其中一个字体系列来绘制文本。

VOID Example_GetFamilies(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a PrivateFontCollection object, and add three families.
   PrivateFontCollection fontCollection;
   fontCollection.AddFontFile(L"C:\\WINNT\\Fonts\\Arial.ttf");
   fontCollection.AddFontFile(L"C:\\WINNT\\Fonts\\CourBI.ttf");
   fontCollection.AddFontFile(L"C:\\WINNT\\Fonts\\TimesBd.ttf");

   // Create an array to hold the font families, and get the font families of
   // fontCollection.
   FontFamily families[3];
   int numFamilies;
   fontCollection.GetFamilies(3, families, &numFamilies);

   // Create a Font object from the first FontFamily object in the array.
   Font myFont(&families[0], 16);

   // Use myFont to draw text.
   SolidBrush solidbrush(Color(255, 0, 0, 0));
   WCHAR string[] = L"This is an Arial font";
   graphics.DrawString(string,
                       21, &myFont, PointF(0, 0), &solidbrush);
}

要求

要求
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdiplusheaders.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

FontCollection

FontCollection::GetFamilyCount

FontFamily

PrivateFontCollection

使用文本和字体