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 fontAxisValues
verweist.
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 16299 |
mindestens unterstützte Server- | Windows 10 Build 16299 |
Zielplattform- | Fenster |
Header- | dwrite_3.h |
Library | Dwrite.lib |