INTERFACE IDWriteTextLayout (dwrite.h)
L’interface IDWriteTextLayout représente un bloc de texte après avoir été entièrement analysé et mis en forme.
Héritage
L’interface IDWriteTextLayout hérite d’IDWriteTextFormat. IDWriteTextLayout a également les types de membres suivants :
Méthodes
L’interface IDWriteTextLayout a ces méthodes.
IDWriteTextLayout::D etermineMinWidth Détermine la largeur minimale possible pour laquelle la disposition peut être définie sans rupture d’urgence entre les caractères de mots entiers. |
IDWriteTextLayout::D raw Dessine du texte à l’aide du contexte de dessin client spécifié. |
IDWriteTextLayout::GetClusterMetrics Récupère les propriétés logiques et les mesures de chaque cluster de glyphes. |
IDWriteTextLayout::GetDrawingEffect Obtient l’effet de dessin défini par l’application à la position de texte spécifiée. |
IDWriteTextLayout::GetFontCollection Obtient la collection de polices associée au texte à la position spécifiée. |
IDWriteTextLayout::GetFontFamilyName Copie le nom de la famille de polices du texte à la position spécifiée. |
IDWriteTextLayout::GetFontFamilyNameLength Obtenez la longueur du nom de la famille de polices à la position actuelle. |
IDWriteTextLayout::GetFontSize Obtient la hauteur de police em du texte à la position spécifiée. |
IDWriteTextLayout::GetFontStretch Obtient l’étirement de police du texte à la position spécifiée. |
IDWriteTextLayout::GetFontStyle Obtient le style de police (également appelé pente) du texte à la position spécifiée. |
IDWriteTextLayout::GetFontWeight Obtient l’épaisseur de police du texte à la position spécifiée. |
IDWriteTextLayout::GetInlineObject Obtient l’objet inline à la position spécifiée. |
IDWriteTextLayout::GetLineMetrics Récupère les informations relatives à chaque ligne de texte individuelle de la chaîne de texte. |
IDWriteTextLayout::GetLocaleName Obtient le nom des paramètres régionaux du texte à la position spécifiée. |
IDWriteTextLayout::GetLocaleNameLength Obtient la longueur du nom des paramètres régionaux du texte à la position spécifiée. |
IDWriteTextLayout::GetMaxHeight Obtient la hauteur maximale de disposition. |
IDWriteTextLayout::GetMaxWidth Obtient la largeur maximale de la disposition. |
IDWriteTextLayout::GetMetrics Récupère les métriques globales de la chaîne mise en forme. (IDWriteTextLayout.GetMetrics) |
IDWriteTextLayout::GetOverhangMetrics Retourne les surplombs (en ADRESSES IP) de la disposition et tous les objets qu’il contient, y compris les glyphes de texte et les objets inline. |
IDWriteTextLayout::GetStrikethrough Obtenez la présence barré du texte à la position spécifiée. |
IDWriteTextLayout::GetTypography Obtient le paramètre de typographie du texte à la position spécifiée. |
IDWriteTextLayout::GetUnderline Obtient la présence soulignée du texte à la position spécifiée. |
IDWriteTextLayout::HitTestPoint L’application appelle cette fonction en passant un emplacement de pixel spécifique par rapport à l’emplacement supérieur gauche de la zone de disposition et obtient les informations sur les métriques de test de positionnement correspondantes de la chaîne de texte où le test de positionnement s’est produit. |
IDWriteTextLayout::HitTestTextPosition L’application appelle cette fonction pour obtenir l’emplacement du pixel par rapport au haut à gauche de la zone de disposition en fonction de la position du texte et du côté logique de la position. |
IDWriteTextLayout::HitTestTextRange L’application appelle cette fonction pour obtenir un ensemble de métriques de test de positionnement correspondant à une plage de positions de texte. L’une des principales utilisations consiste à implémenter la sélection de mise en surbrillance de la chaîne de texte. |
IDWriteTextLayout::SetDrawingEffect Définit l’effet de dessin défini par l’application. |
IDWriteTextLayout::SetFontCollection Définit la collection de polices. |
IDWriteTextLayout::SetFontFamilyName Définit le nom de la famille de polices se terminant par null pour le texte dans une plage de texte spécifiée. |
IDWriteTextLayout::SetFontSize Définit la taille de police en unités DIP pour le texte dans une plage de texte spécifiée. |
IDWriteTextLayout::SetFontStretch Définit l’étirement de police pour le texte dans une plage de texte spécifiée. |
IDWriteTextLayout::SetFontStyle Définit le style de police du texte dans une plage de texte spécifiée par une structure DWRITE_TEXT_RANGE. |
IDWriteTextLayout::SetFontWeight Définit l’épaisseur de police du texte dans une plage de texte spécifiée par une structure DWRITE_TEXT_RANGE. |
IDWriteTextLayout::SetInlineObject Définit l’objet inline. |
IDWriteTextLayout::SetLocaleName Définit le nom des paramètres régionaux pour le texte dans une plage de texte spécifiée. |
IDWriteTextLayout::SetMaxHeight Définit la hauteur maximale de la disposition. |
IDWriteTextLayout::SetMaxWidth Définit la largeur maximale de la disposition. |
IDWriteTextLayout::SetStrikethrough Définit un barré pour le texte dans une plage de texte spécifiée. |
IDWriteTextLayout::SetTypography Définit les fonctionnalités de typographie de police pour le texte dans une plage de texte spécifiée. |
IDWriteTextLayout::SetUnderline Définit la mise en surligne du texte dans une plage de texte spécifiée. |
Notes
Pour obtenir une référence à l’interface IDWriteTextLayout , l’application doit appeler la méthode IDWriteFactory::CreateTextLayout , comme indiqué dans le code suivant.
// 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.
);
}
L’interface IDWriteTextLayout permet à l’application de modifier le format des plages du texte qu’elle représente, spécifiée par une structure DWRITE_TEXT_RANGE . L’exemple suivant montre comment définir l’épaisseur de police d’une plage de texte.
// 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 fournit également des méthodes pour ajouter des objets barrés, soulignés et inline au texte.
Pour dessiner le bloc de texte représenté par un objet IDWriteTextLayout , Direct2D fournit la méthode ID2D1RenderTarget::D rawTextLayout . Pour dessiner à l’aide d’un renderer personnalisé implémentez une interface IDWriteTextRenderer et appelez la méthode IDWriteTextLayout::D raw
DirectWrite et Direct2D
Pour dessiner une chaîne mise en forme représentée par un objet IDWriteTextLayout , Direct2D fournit la méthode ID2D1RenderTarget::D rawTextLayout .Autres options de rendu
Pour effectuer un rendu à l’aide d’un renderer personnalisé, utilisez la méthode IDWriteTextLayout::D raw , qui prend une interface de rappel dérivée d’IDWriteTextRenderer comme argument, comme illustré dans le code suivant.
// Draw the text layout using DirectWrite and the CustomTextRenderer class.
hr = pTextLayout_->Draw(
NULL,
pTextRenderer_, // Custom text renderer.
origin.x,
origin.y
);
IDWriteTextRenderer déclare des méthodes de dessin d’une exécution de glyphe, de soulignement, de frappe et d’objets inline. Il est à l’application d’implémenter ces méthodes. La création d’un convertisseur de texte personnalisé permet à l’application d’appliquer des effets supplémentaires lors du rendu du texte, tels qu’un remplissage personnalisé ou un contour.
L’utilisation d’un convertisseur de texte personnalisé vous permet également d’effectuer un rendu à l’aide d’une autre technologie, telle que GDI.
Configuration requise
Client minimal pris en charge | Windows 7, Windows Vista avec SP2 et Platform Update pour Windows Vista [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | dwrite.h |