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

Voir aussi

IDWriteTextFormat