IDWriteFontFace5::GetFontAxisValues 方法 (dwrite_3.h)
检索字体使用的轴值列表。
语法
HRESULT GetFontAxisValues(
[out] DWRITE_FONT_AXIS_VALUE *fontAxisValues,
UINT32 fontAxisValueCount
);
参数
[out] fontAxisValues
指向 DWRITE_FONT_AXIS_VALUE 结构数组的指针, GetFontAxisValues 在其中写入字体轴值列表。 你负责管理此数组的大小和生存期。 调用 GetFontAxisValueCount 以确定要分配的数组的大小。
fontAxisValueCount
类型: UINT32
要写入指向的内存块 fontAxisValues
的最大字体轴值数。
返回值
类型: HRESULT
如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码。
返回值 | 说明 |
---|---|
E_INVALIDARG | fontAxisValueCount 与 GetFontAxisValueCount 返回的值不匹配。 |
备注
值按字体定义的规范顺序返回,并固定到支持的实际范围。 它不一定与传递给 CreateFontFace 的轴值数组相同。
示例
// main.cpp
#include <unknwn.h>
#include <winrt/base.h>
#include <dwrite_3.h>
int main()
{
winrt::init_apartment();
winrt::com_ptr<IDWriteFactory> factory;
winrt::check_hresult(::DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED,
__uuidof(factory),
reinterpret_cast<IUnknown**>(factory.put())));
std::wstring filePath{ L"C:\\WINDOWS\\FONTS\\AGENCYB.TTF" };
winrt::com_ptr<IDWriteFontFile> fontFile;
factory->CreateFontFileReference(
filePath.c_str(),
nullptr,
fontFile.put());
std::array<IDWriteFontFile*, 1> fontFiles{ fontFile.get() };
winrt::com_ptr<IDWriteFontFace> fontFace;
winrt::check_hresult(factory->CreateFontFace(
DWRITE_FONT_FACE_TYPE_TRUETYPE,
1,
fontFiles.data(),
0,
DWRITE_FONT_SIMULATIONS_NONE,
fontFace.put()
));
winrt::com_ptr<IDWriteFontFace5> fontFace5{ fontFace.as<IDWriteFontFace5>() };
UINT32 axisValueCount{ fontFace5->GetFontAxisValueCount() };
DWRITE_FONT_AXIS_VALUE* axisValues{ new DWRITE_FONT_AXIS_VALUE[axisValueCount] };
winrt::check_hresult(
fontFace5->GetFontAxisValues(axisValues, axisValueCount));
DWRITE_FONT_AXIS_VALUE* eachAxisValue{ axisValues };
for (int ix = 0; ix < axisValueCount; ++ix, ++eachAxisValue)
{
printf("%zu,%f\n\r", eachAxisValue->axisTag, eachAxisValue->value);
}
delete[] axisValues;
}
要求
最低受支持的客户端 | Windows 10内部版本 20348 |
最低受支持的服务器 | Windows 10内部版本 20348 |
目标平台 | Windows |
标头 | dwrite_3.h |
Library | Dwrite.lib |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈