GDI와 상호 운용

DirectWrite GDI의 글꼴 모델과의 마이그레이션 경로 및 일부 상호 운용성뿐만 아니라 텍스트를 창에 그릴 수 있는 비트맵으로 렌더링하기 위한 인터페이스를 제공합니다.

이 개요에는 다음 부분이 포함되어 있습니다.

소개

DirectWrite GDI의 LOGFONT 구조와 DirectWrite 글꼴 인터페이스 간에 변환하는 메서드를 제공합니다. 이렇게 하면 GDI를 글꼴 열거형 및 선택 영역의 일부 또는 전부에 사용하는 동시에 향상된 기능과 DirectWrite 성능을 활용할 수 있습니다. DirectWrite GDI 화면에 텍스트를 표시하려는 경우 비트맵으로 렌더링하기 위한 인터페이스도 있습니다.

1부: IDWriteGdiInterop

IDWriteGdiInterop 인터페이스는 GDI 글꼴 구조와 DirectWrite 글꼴 인터페이스 간에 변환하고 IDWriteBitmapRenderTarget 개체를 만드는 데 사용됩니다. 다음 코드와 같이 IDWriteFactory::GetGdiInterop 메서드를 사용하여 IDWriteGdiInterop 개체를 가져옵니다.

// Create a GDI interop interface.
if (SUCCEEDED(hr))
{
    hr = g_pDWriteFactory->GetGdiInterop(&g_pGdiInterop);
}

2부: 글꼴 개체

GDI는 LOGFONT 구조를 사용하여 텍스트의 글꼴 및 스타일에 대한 정보를 저장합니다. IDWriteGdiInterop::CreateFontFromLOGFONT 메서드는 다음 코드와 같이 LOGFONT 구조를 IDWriteFont 개체로 변환합니다.

// Convert to a DirectWrite font.
if (SUCCEEDED(hr))
{
    hr = g_pGdiInterop->CreateFontFromLOGFONT(&lf, &pFont);
}

그러나 IDWriteFont 는 LOGFONT가 수행하는 것과 동일한 정보를 모두 캡슐화하지는 않습니다. LOGFONT 구조체에는 글꼴 크기, 두께, 스타일, 밑줄, 취소선, 글꼴 얼굴 이름 및 기타 정보가 포함됩니다. IDWriteFont 개체는 글꼴과 그 두께 및 스타일에 대한 정보를 포함하지만 글꼴 크기, 밑줄 등은 포함하지 않습니다. DirectWrite 이러한 형식 지정 정보 요소는 IDWriteTextFormat 개체 또는 특정 텍스트 범위의 IDWriteTextLayout 개체에 의해 캡슐화됩니다.

IDWriteGdiInterop::ConvertFontToLOGFONT를 사용하여 IDWriteFont를 LOGFONT로 변환하는 옵션이 있습니다.

3부: 렌더링

GDI 화면에 DirectWrite 텍스트를 렌더링하려면 사용자 지정 텍스트 렌더러를 사용합니다. GDI Surface에 렌더링 항목을 참조하세요.