字体功能

Windows GDI+公开一个平面 API,其中包含大约 600 个函数,这些函数在 Gdiplus.dll 中实现,并在 Gdiplusflat.h 中声明。 GDI+平面 API 中的函数由大约 40 个 C++ 类的集合包装。 建议不要直接调用平面 API 中的函数。 每当调用GDI+时,都应该通过调用 C++ 包装器提供的方法和函数来执行此操作。 Microsoft 产品支持服务不会为直接调用平面 API 的代码提供支持。 有关使用这些包装器方法的详细信息,请参阅GDI+平面 API

以下平面 API 函数由 Font C++ 类包装。

字体函数和相应的包装器方法

平面函数 包装器方法 注解
GpStatus WINGDIPAPI GdipCreateFontFromDC ( HDC hdc, GpFont **font )
Font::Font (IN HDC hdc) 基于当前选定到指定设备上下文中的 GDI 字体对象创建 Font 对象。 此构造函数用于与 GDI 兼容。
GpStatus WINGDIPAPI GdipCreateFontFromLogfontA ( HDC hdc, GDIPCONST LOGFONTA *logfont, GpFont **font )
Font::Font (IN HDC hdc, IN const LOGFONTA* logfont) 直接从 GDI 逻辑字体创建 Font 对象。 GDI 逻辑字体是 LOGFONTA 结构,它是逻辑字体的一字节字符版本。 此构造函数用于与 GDI 兼容。
GpStatus WINGDIPAPI GdipCreateFontFntFromLogfontW ( HDC hdc, GDIPCONST LOGFONTW *logfont, GpFont **font )
Font::Font (IN HDC hdc, IN const LOGFONTW* logfont) 直接从 GDI 逻辑字体创建 Font 对象。 GDI 逻辑字体是 LOGFONTW 结构,它是逻辑字体的一字节字符版本。 此构造函数用于与 GDI 兼容。
GpStatus WINGDIPAPI GdipCloneFont (GpFont* 字体,GpFont** cloneFont)
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipCreateFont ( GDIPCONST GpFontFamily *fontFamily, REAL emSize, INT style, Unit unit, GpFont **font )
Font::Font ( IN const FontFamily * family, IN REAL emSize, IN INT style, IN Unit unit ) 基于字体系列、大小、字体样式、度量单位和 FontCollection 对象创建 Font 对象。
GpStatus WINGDIPAPI GdipCloneFont (GpFont* 字体,GpFont** cloneFont)
Font::Font* Clone () const 基于此 Font 对象创建新的 Font 对象。
GpStatus WINGDIPAPI GdipDeleteFont (GpFont* 字体)
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipGetFamily (GpFont *font, GpFontFamily **family)
状态字体::GetFamily (OUT FontFamily *family) const 获取此字体所基于的字体系列。
GpStatus WINGDIPAPI GdipGetFontStyle (GpFont *font, INT *style)
INT Font::GetStyle () const 获取此字体字形的样式
GpStatus WINGDIPAPI GdipGetFontSize (GpFont *font, REAL *size)
REAL Font::GetSize () const 返回此 Font 对象的 em 大小) 通常称为 em 大小的字号 (。 大小位于此 Font 对象的单位中。
GpStatus WINGDIPAPI GdipGetFontUnit (GpFont *font, Unit *unit)
Unit Font::GetUnit () const 返回此 Font 对象的度量单位。
GpStatus WINGDIPAPI GdipGetFontHeight (GDIPCONST GpFont *font, GDIPCONST GpGraphics *graphics, REAL *height)
REAL Font::GetHeight (in const Graphics *graphics) const 获取指定 图形 对象的当前单元中此字体的行距。 行距是两个连续文本行的基线之间的垂直距离。 因此,行距包括行之间的空白空间以及字符本身的高度。
GpStatus WINGDIPAPI GdipGetFontHeightGivenDPI (GDIPCONST GpFont *font, REAL dpi, REAL *height)
REAL Font::GetHeight (IN REAL dpi) const 获取此字体的行距(以像素为单位)。 行距是两个连续文本行的基线之间的垂直距离。 因此,行距包括行之间的空白空间以及字符本身的高度。
GpStatus WINGDIPAPI GdipGetLogFontA (GpFont * font, GpGraphics *graphics, LOGFONTA * logfontA)
状态字体::GetLogFontA (IN const Graphics *g, OUT LOGFONTA *logfontA) const 使用 LOGFONTA 结构获取此 Font 对象的属性。
GpStatus WINGDIPAPI GdipGetLogFontW (GpFont * font, GpGraphics *graphics, LOGFONTW * logfontW)
状态字体::GetLogFontW (IN const Graphics *g, OUT LOGFONTW *logfontW) const 使用 LOGFONTW 结构获取此 Font 对象的属性。
GpStatus WINGDIPAPI GdipNewInstalledFontCollection (GpFontCollection** fontCollection)
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipNewPrivateFontCollection (GpFontCollection** fontCollection)
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipDeletePrivateFontCollection (GpFontCollection** fontCollection)
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipGetFontCollectionFamilyCount ( GpFontCollection* fontCollection, INT * numFound )
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipGetFontCollectionFamilyList ( GpFontCollection* fontCollection, INT numSought, GpFontFamily* gpfamilies[], INT* numFound )
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipPrivateAddFontFile ( GpFontCollection* fontCollection, GDIPCONST WCHAR* filename )
未通过包装方法调用。
未实现。
GpStatus WINGDIPAPI GdipPrivateAddMemoryFont ( GpFontCollection* fontCollection, GDIPCONST void* memory, INT length )
未通过包装方法调用。
未实现。