Méthode ITextServices ::TxGetNaturalSize (textserv.h)

Permet à un contrôle d’être redimensionné afin qu’il s’adapte correctement à son contenu.

Syntaxe

HRESULT TxGetNaturalSize(
            DWORD          dwAspect,
            HDC            hdcDraw,
            HDC            hicTargetDev,
            DVTARGETDEVICE *ptd,
            DWORD          dwMode,
            const SIZEL    *psizelExtent,
  [in, out] LONG           *pwidth,
  [in, out] LONG           *pheight
);

Paramètres

dwAspect

Type : DWORD

Aspect du dessin. Il peut s’agir de l’une des valeurs de l’énumération DVASPECT .

hdcDraw

Type : HDC

Contexte de l’appareil dans lequel le dessin se produit.

hicTargetDev

Type : HDC

Contexte de l’appareil pour lequel le texte doit être mis en forme (autrement dit, pour WYSIWYG).

ptd

Type : DVTARGETDEVICE*

Plus d’informations sur l’appareil cible.

dwMode

Type : DWORD

Type d’ajustement demandé. Il peut s’agir de l’un des éléments suivants.

Valeur Signification
TXTNS_EMU
Utilisez des unités de métriques anglaises (EMU) au lieu de pixels comme unités de mesure pour les paramètres de cette méthode.
TXTNS_FITTOCONTENT
Redimensionnez le contrôle pour qu’il s’adapte au texte entier en le mettant en forme à la largeur passée. L’objet de services de texte renvoie la hauteur du texte entier et la largeur de la ligne la plus large.

Par exemple, cette opération doit être effectuée lorsque l’utilisateur double-clique sur l’un des handles du contrôle.

TXTNS_FITTOCONTENT2
Redimensionnez le contrôle afin qu’il corresponde au contenu mis en retrait.
TXTNS_FITTOCONTENT3
Redimensionnez le contrôle afin qu’il corresponde au contenu en retrait et à l’espace blanc de fin.
TXTNS_FITTOCONTENTWSP
Redimensionnez le contrôle de façon à ce qu’il s’adapte à un contenu sans fin et à un espace blanc de fin.
TXTNS_INCLUDELASTLINE
Pour un contrôle de texte brut, incluez la hauteur du retour chariot final lors du calcul de la taille.
TXTNS_ROUNDTOLINE
Redimensionnez le contrôle pour afficher un nombre intégral de lignes (aucune ligne n’est coupée). Mettez en forme suffisamment de texte pour remplir la largeur et la hauteur passées, puis renvoyer une hauteur arrondie à la limite de ligne la plus proche.
Note La largeur et la hauteur passées et retournées correspondent au rectangle d’affichage. L’hôte doit se réajuster au rectangle client si nécessaire. Étant donné que ces valeurs représentent l’étendue de l’objet texte, elles sont d’entrée et de sortie en coordonnées HIMETRIC (chaque unité HIMETRIC est de 0,01 millimètre), et la mesure n’inclut aucun facteur de zoom. Pour une présentation du facteur de zoom, consultez TxGetExtent.
 

psizelExtent

Type : const SIZEL*

Non pris en charge.

[in, out] pwidth

Type : LONG*

Largeur du raccord défini par dwMode.

[in, out] pheight

Type : LONG*

Hauteur du raccord défini par dwMode.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est S_OK.

Si les services de texte n’ont pas pu activer l’objet, la valeur de retour est l’un des codes HRESULT suivants. Pour plus d’informations sur les codes d’erreur COM, consultez Gestion des erreurs dans COM.

Code de retour Description
E_FAIL
Impossible de déterminer la taille correcte.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
E_OUTOFMEMORY
Mémoire insuffisante.

Remarques

Les quatre premiers paramètres sont similaires aux paramètres équivalents dans ITextServices ::TxDraw et fournissent les mêmes informations. Dans le cas où les lignes doivent être recalculées, il doit utiliser ces valeurs de la même manière que dans ITextServices ::TxDraw.

Les paramètres pwidth et pheight sont des paramètres entrants/sortants. L’hôte transmet la largeur et la hauteur provisoires de l’étendue naturelle de l’objet texte. L’objet de services de texte compare ces valeurs à son état mis en cache actuel et, s’il est différent, recalcule les lignes. Ensuite, il calcule et retourne la taille naturelle, comme spécifié par dwMode.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête textserv.h
DLL Msftedit.dll

Voir aussi

Conceptuel

DVTARGETDEVICE

ITextServices

Autres ressources

Référence

TxDraw

TxGetExtent

Contrôles d’édition enrichis sans fenêtre