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 |