Bagikan melalui


IDWriteFontFace5::GetFontAxisValues method (dwrite_3.h)

Mengambil daftar nilai sumbu yang digunakan oleh font.

Sintaksis

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

Parameter

[out] fontAxisValues

Jenis: DWRITE_FONT_AXIS_VALUE*

Penunjuk ke array struktur DWRITE_FONT_AXIS_VALUE tempat GetFontAxisValues menulis daftar nilai sumbu font. Anda bertanggung jawab untuk mengelola ukuran dan masa pakai array ini. Panggil GetFontAxisValueCount untuk menentukan ukuran array yang akan dialokasikan.

fontAxisValueCount

Jenis: UINT32

Jumlah maksimum nilai sumbu font untuk ditulis ke dalam blok memori yang ditujukkan oleh fontAxisValues.

Mengembalikan nilai

Jenis: HRESULT

Jika fungsi berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahanHRESULT .

Mengembalikan nilai Deskripsi
E_INVALIDARG fontAxisValueCount tidak cocok dengan nilai yang dikembalikan oleh GetFontAxisValueCount.

Komentar

Nilai dikembalikan dalam urutan kanonis yang ditentukan oleh font, dijepit ke rentang aktual yang didukung. Ini belum tentu array nilai sumbu yang sama dengan yang Anda teruskan ke CreateFontFace.

Contoh

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

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 10 Build 16299
server minimum yang didukung Windows 10 Build 16299
Platform Target Windows
Header dwrite_3.h
Pustaka Dwrite.lib