共用方式為


IDWriteFontFace5::GetFontAxisValues 方法 (dwrite_3.h)

擷取字型所使用的座標軸值清單。

語法

HRESULT GetFontAxisValues(
  [out] DWRITE_FONT_AXIS_VALUE *fontAxisValues,
        UINT32                 fontAxisValueCount
);

參數

[out] fontAxisValues

類型:DWRITE_FONT_AXIS_VALUE*

DWRITE_FONT_AXIS_VALUE 結構的陣列指標,GetFontAxisValues 寫入字型座標軸值清單。 您必須負責管理此陣列的大小和存留期。 呼叫 GetFontAxisValueCount,以判斷要配置的陣列大小。

fontAxisValueCount

類型:UINT32

要寫入記憶體區塊的字型座標軸值數目上限,fontAxisValues

傳回值

類型:HRESULT

如果函式成功,它會傳回 S_OK。 否則,它會傳回 HRESULT錯誤碼

傳回值 描述
E_INVALIDARG 不符合 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 組建 16299
支援的最低伺服器 Windows 10 組建 16299
目標平臺 窗戶
標頭 dwrite_3.h
連結庫 Dwrite.lib