Freigeben über


IDWriteFontFace5::GetFontAxisValues-Methode (dwrite_3.h)

Ruft die Liste der Achsenwerte ab, die von der Schriftart verwendet werden.

Syntax

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

Parameter

[out] fontAxisValues

Typ: DWRITE_FONT_AXIS_VALUE*

Ein Zeiger auf ein Array DWRITE_FONT_AXIS_VALUE Strukturen, in das GetFontAxisValues die Liste der Schriftachsenwerte schreibt. Sie sind für die Verwaltung der Größe und der Lebensdauer dieses Arrays verantwortlich. Rufen Sie GetFontAxisValueCount auf, um die Größe des arrays zu bestimmen, das zugeordnet werden soll.

fontAxisValueCount

Typ: UINT32-

Die maximale Anzahl von Schriftachsenwerten, auf die in den Speicherblock geschrieben werden soll, auf den fontAxisValuesverweist.

Rückgabewert

Typ: HRESULT-

Wenn die Funktion erfolgreich ist, wird S_OKzurückgegeben. Andernfalls wird ein HRESULT-Fehlercodezurückgegeben.

Rückgabewert Beschreibung
E_INVALIDARG fontAxisValueCount stimmt nicht mit dem von GetFontAxisValueCountzurückgegebenen Wert überein.

Bemerkungen

Die Werte werden in der kanonischen Reihenfolge zurückgegeben, die durch die Schriftart definiert ist und an den tatsächlich unterstützten Bereich geklammert wird. Es ist nicht unbedingt dasselbe Achsenwertarray, das Sie an CreateFontFaceübergeben haben.

Beispiele

// 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;
}

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10 Build 20348
mindestens unterstützte Server- Windows 10 Build 20348
Zielplattform- Fenster
Header- dwrite_3.h
Library Dwrite.lib