Interface IDWriteTextLayout (dwrite.h)
L’interface IDWriteTextLayout représente un bloc de texte une fois qu’il a é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 utilise ces méthodes.
IDWriteTextLayout::D etermineMinWidth Détermine la largeur minimale possible sur laquelle la disposition peut être définie sans rupture d’urgence entre les caractères de mots entiers qui se produisent. |
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 le poids 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 sur chaque ligne de texte 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 pour la chaîne mise en forme. (IDWriteTextLayout.GetMetrics) |
IDWriteTextLayout::GetOverhangMetrics Retourne les surplombs (en DIPs) de la disposition et de tous les objets qu’elle contient, y compris les glyphes de texte et les objets inline. |
IDWriteTextLayout::GetStrikethrough Obtenez la présence barrée 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 du soulignement 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 correspondantes de test de positionnement de la chaîne de texte où le test d’accès a eu lieu. |
IDWriteTextLayout::HitTestTextPosition L’application appelle cette fonction pour obtenir l’emplacement des pixels par rapport à la partie supérieure 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 utilisations main consiste à implémenter la sélection de la 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 terminée 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’étendue 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 le poids de police pour le 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 disposition. |
IDWriteTextLayout::SetMaxWidth Définit la largeur maximale de la disposition. |
IDWriteTextLayout::SetStrikethrough Définit le texte barré 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 le soulignement pour le 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 pour 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 de IDWriteTextRenderer comme argument, comme indiqué 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 pour dessiner une exécution de glyphe, un soulignement, un barré et des objets inline. Il appartient à 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 ou un contour personnalisé.
L’utilisation d’un convertisseur de texte personnalisé vous permet également d’effectuer le rendu à l’aide d’une autre technologie, telle que GDI.
Spécifications
Client minimal pris en charge | Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme 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 |