Freigeben über


IDWriteTextLayout-Schnittstelle (dwrite.h)

Die IDWriteTextLayout-Schnittstelle stellt einen Textblock dar, nachdem er vollständig analysiert und formatiert wurde.

Vererbung

Die IDWriteTextLayout-Schnittstelle erbt von IDWriteTextFormat. IDWriteTextLayout verfügt auch über folgende Membertypen:

Methoden

Die IDWriteTextLayout-Schnittstelle verfügt über diese Methoden.

 
IDWriteTextLayout::D etermineMinWidth

Bestimmt die mindest mögliche Breite, auf die das Layout festgelegt werden kann, ohne dass zwischen den Zeichen ganzer Wörter ein Notfall unterbrochen wird.
IDWriteTextLayout::D raw

Zeichnet Text mithilfe des angegebenen Clientzeichnungskontexts.
IDWriteTextLayout::GetClusterMetrics

Ruft logische Eigenschaften und Messungen jedes Glyphenclusters ab.
IDWriteTextLayout::GetDrawingEffect

Ruft den anwendungsdefinierten Zeichnungseffekt an der angegebenen Textposition ab.
IDWriteTextLayout::GetFontCollection

Ruft die schriftartenauflistung ab, die dem Text an der angegebenen Position zugeordnet ist.
IDWriteTextLayout::GetFontFamilyName

Kopiert den Schriftfamiliennamen des Texts an der angegebenen Position.
IDWriteTextLayout::GetFontFamilyNameLength

Ruft die Länge des Schriftfamiliennamens an der aktuellen Position ab.
IDWriteTextLayout::GetFontSize

Ruft die Schrift em height des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetFontStretch

Ruft den Schriftgrad des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetFontStyle

Ruft die Schriftart (auch als Steigung bezeichnet) des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetFontWeight

Ruft die Schriftstärke des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetInlineObject

Ruft das Inlineobjekt an der angegebenen Position ab.
IDWriteTextLayout::GetLineMetrics

Ruft die Informationen zu jeder einzelnen Textzeile der Textzeichenfolge ab.
IDWriteTextLayout::GetLocaleName

Ruft den Gebietsschemanamen des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetLocaleNameLength

Ruft die Länge des Gebietsschemanamens des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetMaxHeight

Ruft die maximale Höhe des Layouts ab.
IDWriteTextLayout::GetMaxWidth

Ruft die maximale Breite des Layouts ab.
IDWriteTextLayout::GetMetrics

Ruft die Gesamtmetriken für die formatierte Zeichenfolge ab. (IDWriteTextLayout.GetMetrics)
IDWriteTextLayout::GetOverhangMetrics

Gibt die Überhänge (in DIPs) des Layouts und aller darin enthaltenen Objekte zurück, einschließlich Textglyphen und Inlineobjekten.
IDWriteTextLayout::GetStrikethrough

Ruft das durchgestrichene Vorhandensein des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetTypography

Ruft die Typografieeinstellung des Texts an der angegebenen Position ab.
IDWriteTextLayout::GetUnderline

Ruft das Unterstrichen des Texts an der angegebenen Position ab.
IDWriteTextLayout::HitTestPoint

Die Anwendung ruft diese Funktion auf und übergibt eine bestimmte Pixelposition relativ zur linken oberen Position des Layoutfelds und ruft die Informationen zu den entsprechenden Treffertestmetriken der Textzeichenfolge ab, in der der Treffertest aufgetreten ist.
IDWriteTextLayout::HitTestTextPosition

Die Anwendung ruft diese Funktion auf, um die Pixelposition relativ zur oberen linken Seite des Layoutfelds unter Berücksichtigung der Textposition und der logischen Seite der Position abzurufen.
IDWriteTextLayout::HitTestTextRange

Die Anwendung ruft diese Funktion auf, um eine Reihe von Treffertestmetriken abzurufen, die einem Bereich von Textpositionen entsprechen. Eine der Standard Verwendungen besteht darin, die Hervorhebungsauswahl der Textzeichenfolge zu implementieren.
IDWriteTextLayout::SetDrawingEffect

Legt den anwendungsdefinierten Zeichnungseffekt fest.
IDWriteTextLayout::SetFontCollection

Legt die Schriftartenauflistung fest.
IDWriteTextLayout::SetFontFamilyName

Legt den Namen der Schriftartenfamilie mit NULL-Beendigung für Text innerhalb eines angegebenen Textbereichs fest.
IDWriteTextLayout::SetFontSize

Legt den Schriftgrad in DIP-Einheiten für Text innerhalb eines angegebenen Textbereichs fest.
IDWriteTextLayout::SetFontStretch

Legt den Schriftbereich für Text innerhalb eines angegebenen Textbereichs fest.
IDWriteTextLayout::SetFontStyle

Legt die Schriftart für Text in einem Textbereich fest, der von einer DWRITE_TEXT_RANGE-Struktur angegeben wird.
IDWriteTextLayout::SetFontWeight

Legt die Schriftstärke für Text in einem Textbereich fest, der durch eine DWRITE_TEXT_RANGE-Struktur angegeben wird.
IDWriteTextLayout::SetInlineObject

Legt das Inlineobjekt fest.
IDWriteTextLayout::SetLocaleName

Legt den Gebietsschemanamen für Text innerhalb eines angegebenen Textbereichs fest.
IDWriteTextLayout::SetMaxHeight

Legt die maximale Höhe des Layouts fest.
IDWriteTextLayout::SetMaxWidth

Legt die maximale Breite des Layouts fest.
IDWriteTextLayout::SetStrikethrough

Legt durchgestrichenen Text innerhalb eines angegebenen Textbereichs fest.
IDWriteTextLayout::SetTypography

Legt Schriftarttypografiefeatures für Text innerhalb eines angegebenen Textbereichs fest.
IDWriteTextLayout::SetUnderline

Legt die Unterstreichung für Text innerhalb eines angegebenen Textbereichs fest.

Hinweise

Um einen Verweis auf die IDWriteTextLayout-Schnittstelle abzurufen, muss die Anwendung die IDWriteFactory::CreateTextLayout-Methode aufrufen, wie im folgenden Code gezeigt.


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


Die IDWriteTextLayout-Schnittstelle ermöglicht es der Anwendung, das Format für Bereiche des texts zu ändern, die sie darstellt, angegeben durch eine DWRITE_TEXT_RANGE-Struktur . Das folgende Beispiel zeigt, wie die Schriftstärke für einen Textbereich festgelegt wird.


// 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 bietet auch Methoden zum Hinzufügen von Durchstreichungs-, Unterstrichen- und Inlineobjekten zum Text.

Um den Textblock zu zeichnen, der durch ein IDWriteTextLayout-Objekt dargestellt wird, stellt Direct2D die ID2D1RenderTarget::D rawTextLayout-Methode bereit. Um mit einem benutzerdefinierten Renderer zu zeichnen, implementieren Sie eine IDWriteTextRenderer-Schnittstelle , und rufen Sie die IDWriteTextLayout::D raw-Methode auf.

DirectWrite und Direct2D

Um eine formatierte Zeichenfolge zu zeichnen, die durch ein IDWriteTextLayout-Objekt dargestellt wird, stellt Direct2D die ID2D1RenderTarget::D rawTextLayout-Methode bereit.

Andere Renderingoptionen

Verwenden Sie zum Rendern mit einem benutzerdefinierten Renderer die IDWriteTextLayout::D raw-Methode , die eine von IDWriteTextRenderer abgeleitete Rückrufschnittstelle als Argument verwendet, wie im folgenden Code gezeigt.

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


IDWriteTextRenderer deklariert Methoden zum Zeichnen von Glyphenausführungs-, Unterstrichen-, Durchstreichungs- und Inlineobjekten. Es liegt an der Anwendung, diese Methoden zu implementieren. Durch das Erstellen eines benutzerdefinierten Textrenderers kann die Anwendung beim Rendern von Text zusätzliche Effekte anwenden, z. B. eine benutzerdefinierte Füllung oder Gliederung.

Mithilfe eines benutzerdefinierten Textrenderers können Sie auch eine andere Technologie wie GDI rendern.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile dwrite.h

Weitere Informationen

Idwritetextformat