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

Voir aussi

IDWriteTextFormat