IDWriteTextLayout 인터페이스(dwrite.h)

IDWriteTextLayout 인터페이스는 완전히 분석되고 서식이 지정된 후 텍스트 블록을 나타냅니다.

상속

IDWriteTextLayout 인터페이스는 IDWriteTextFormat에서 상속됩니다. IDWriteTextLayout 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IDWriteTextLayout 인터페이스에는 이러한 메서드가 있습니다.

 
IDWriteTextLayout::D etermineMinWidth

전체 단어의 문자 간에 비상 중단 없이 레이아웃을 설정할 수 있는 최소 너비를 결정합니다.
IDWriteTextLayout::D raw

지정된 클라이언트 그리기 컨텍스트를 사용하여 텍스트를 그립니다.
IDWriteTextLayout::GetClusterMetrics

각 문자 모양 클러스터의 논리적 속성 및 측정값을 검색합니다.
IDWriteTextLayout::GetDrawingEffect

지정된 텍스트 위치에서 애플리케이션 정의 그리기 효과를 가져옵니다.
IDWriteTextLayout::GetFontCollection

지정된 위치에 있는 텍스트와 연결된 글꼴 컬렉션을 가져옵니다.
IDWriteTextLayout::GetFontFamilyName

텍스트의 글꼴 패밀리 이름을 지정된 위치에 복사합니다.
IDWriteTextLayout::GetFontFamilyNameLength

현재 위치에 있는 글꼴 패밀리 이름의 길이를 가져옵니다.
IDWriteTextLayout::GetFontSize

지정된 위치에 있는 텍스트의 글꼴 em 높이를 가져옵니다.
IDWriteTextLayout::GetFontStretch

지정된 위치에 있는 텍스트의 글꼴 스트레치를 가져옵니다.
IDWriteTextLayout::GetFontStyle

지정된 위치에 있는 텍스트의 글꼴 스타일(기울기라고도 함)을 가져옵니다.
IDWriteTextLayout::GetFontWeight

지정된 위치에 있는 텍스트의 글꼴 두께를 가져옵니다.
IDWriteTextLayout::GetInlineObject

지정된 위치에 있는 인라인 개체를 가져옵니다.
IDWriteTextLayout::GetLineMetrics

텍스트 문자열의 각 개별 텍스트 줄에 대한 정보를 검색합니다.
IDWriteTextLayout::GetLocaleName

지정된 위치에 있는 텍스트의 로캘 이름을 가져옵니다.
IDWriteTextLayout::GetLocaleNameLength

지정된 위치에 있는 텍스트의 로캘 이름 길이를 가져옵니다.
IDWriteTextLayout::GetMaxHeight

레이아웃 최대 높이를 가져옵니다.
IDWriteTextLayout::GetMaxWidth

레이아웃 최대 너비를 가져옵니다.
IDWriteTextLayout::GetMetrics

형식이 지정된 문자열에 대한 전체 메트릭을 검색합니다. (IDWriteTextLayout.GetMetrics)
IDWriteTextLayout::GetOverhangMetrics

레이아웃의 오버행과 텍스트 문자 모양 및 인라인 개체를 포함하여 레이아웃에 포함된 모든 개체를 반환합니다.
IDWriteTextLayout::GetStrikethrough

지정된 위치에 있는 텍스트의 취소선 존재를 가져옵니다.
IDWriteTextLayout::GetTypography

지정된 위치에 있는 텍스트의 입력 체계 설정을 가져옵니다.
IDWriteTextLayout::GetUnderline

지정된 위치에 있는 텍스트의 밑줄 존재를 가져옵니다.
IDWriteTextLayout::HitTestPoint

애플리케이션은 레이아웃 상자의 왼쪽 위 위치를 기준으로 특정 픽셀 위치를 전달하는 이 함수를 호출하고 적중 테스트가 발생한 텍스트 문자열의 특파원 적중 테스트 메트릭에 대한 정보를 가져옵니다.
IDWriteTextLayout::HitTestTextPosition

애플리케이션은 텍스트 위치와 위치의 논리적 측면이 지정된 레이아웃 상자의 왼쪽 위와 관련된 픽셀 위치를 가져오기 위해 이 함수를 호출합니다.
IDWriteTextLayout::HitTestTextRange

애플리케이션은 이 함수를 호출하여 텍스트 위치 범위에 해당하는 적중 테스트 메트릭 집합을 가져옵니다. 기본 사용 중 하나는 텍스트 문자열의 강조 표시 선택을 구현하는 것입니다.
IDWriteTextLayout::SetDrawingEffect

애플리케이션 정의 그리기 효과를 설정합니다.
IDWriteTextLayout::SetFontCollection

글꼴 컬렉션을 설정합니다.
IDWriteTextLayout::SetFontFamilyName

지정된 텍스트 범위 내의 텍스트에 대해 null로 끝나는 글꼴 패밀리 이름을 설정합니다.
IDWriteTextLayout::SetFontSize

지정된 텍스트 범위 내에서 텍스트의 글꼴 크기를 DIP 단위로 설정합니다.
IDWriteTextLayout::SetFontStretch

지정된 텍스트 범위 내에서 텍스트의 글꼴 늘이기를 설정합니다.
IDWriteTextLayout::SetFontStyle

DWRITE_TEXT_RANGE 구조체로 지정된 텍스트 범위 내에서 텍스트의 글꼴 스타일을 설정합니다.
IDWriteTextLayout::SetFontWeight

DWRITE_TEXT_RANGE 구조로 지정된 텍스트 범위 내에서 텍스트의 글꼴 두께를 설정합니다.
IDWriteTextLayout::SetInlineObject

인라인 개체를 설정합니다.
IDWriteTextLayout::SetLocaleName

지정된 텍스트 범위 내에서 텍스트의 로캘 이름을 설정합니다.
IDWriteTextLayout::SetMaxHeight

레이아웃 최대 높이를 설정합니다.
IDWriteTextLayout::SetMaxWidth

레이아웃 최대 너비를 설정합니다.
IDWriteTextLayout::SetStrikethrough

지정된 텍스트 범위 내의 텍스트에 대한 취소선 을 설정합니다.
IDWriteTextLayout::SetTypography

지정된 텍스트 범위 내의 텍스트에 대한 글꼴 입력 체계 기능을 설정합니다.
IDWriteTextLayout::SetUnderline

지정된 텍스트 범위 내의 텍스트에 대한 밑면을 설정합니다.

설명

IDWriteTextLayout 인터페이스에 대한 참조를 가져오려면 애플리케이션은 다음 코드와 같이 IDWriteFactory::CreateTextLayout 메서드를 호출해야 합니다.


// Create a text layout using the text format.
if (SUCCEEDED(hr))
{
    RECT rect;
    GetClientRect(hwnd_, &rect); 
    float width  = rect.right  / dpiScaleX_;
    float height = rect.bottom / dpiScaleY_;

    hr = pDWriteFactory_->CreateTextLayout(
        wszText_,      // The string to be laid out and formatted.
        cTextLength_,  // The length of the string.
        pTextFormat_,  // The text format to apply to the string (contains font information, etc).
        width,         // The width of the layout box.
        height,        // The height of the layout box.
        &pTextLayout_  // The IDWriteTextLayout interface pointer.
        );
}


IDWriteTextLayout 인터페이스를 사용하면 애플리케이션이 나타내는 텍스트 범위의 형식을 변경할 수 있으며 DWRITE_TEXT_RANGE 구조체로 지정됩니다. 다음 예제에서는 텍스트 범위의 글꼴 두께를 설정하는 방법을 보여 주는 예제입니다.


// Set the font weight to bold for the first 5 letters.
DWRITE_TEXT_RANGE textRange = {0, 4};

if (SUCCEEDED(hr))
{
    hr = pTextLayout_->SetFontWeight(DWRITE_FONT_WEIGHT_BOLD, textRange);
}


IDWriteTextLayout 은 텍스트에 취소선, 밑줄 및 인라인 개체를 추가하는 메서드도 제공합니다.

IDWriteTextLayout 개체로 표시되는 텍스트 블록을 그리기 위해 Direct2DID2D1RenderTarget::D rawTextLayout 메서드를 제공합니다. 사용자 지정 렌더러를 사용하여 그리려면 IDWriteTextRenderer 인터페이스를 구현하고 IDWriteTextLayout::D raw 메서드를 호출합니다.

DirectWrite 및 Direct2D

IDWriteTextLayout 개체로 표시되는 형식이 지정된 문자열을 그리기 위해 Direct2DID2D1RenderTarget::D rawTextLayout 메서드를 제공합니다.

기타 렌더링 옵션

사용자 지정 렌더러를 사용하여 렌더링하려면 다음 코드와 같이 IDWriteTextRenderer에서 파생된 콜백 인터페이스를 인수로 사용하는 IDWriteTextLayout::D raw 메서드를 사용합니다.

// Draw the text layout using DirectWrite and the CustomTextRenderer class.
hr = pTextLayout_->Draw(
        NULL,
        pTextRenderer_,  // Custom text renderer.
        origin.x,
        origin.y
        );


IDWriteTextRenderer 는 문자 모양 실행, 밑줄, 취소선 및 인라인 개체를 그리는 메서드를 선언합니다. 이러한 메서드를 구현하는 것은 애플리케이션의 입니다. 사용자 지정 텍스트 렌더러를 만들면 애플리케이션에서 사용자 지정 채우기 또는 윤곽선과 같은 텍스트를 렌더링할 때 추가 효과를 적용할 수 있습니다.

사용자 지정 텍스트 렌더러를 사용하면 GDI와 같은 다른 기술을 사용하여 렌더링할 수도 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 dwrite.h

추가 정보

IDWriteTextFormat