Partager via


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

Dessine l’objet services de texte.

Syntaxe

HRESULT TxDraw(
  [in] DWORD           dwDrawAspect,
       LONG            lindex,
  [in] void            *pvAspect,
  [in] DVTARGETDEVICE  *ptd,
  [in] HDC             hdcDraw,
  [in] HDC             hicTargetDev,
  [in] LPCRECTL        lprcBounds,
  [in] LPCRECTL        lprcWBounds,
  [in] LPRECT          lprcUpdate,
       BOOL(* )(DWORD) pfnContinue,
       DWORD           dwContinue,
       LONG            lViewId
);

Paramètres

[in] dwDrawAspect

Type : DWORD

Spécifie l'aspect à dessiner, c'est-à-dire la façon dont l'objet doit être représenté. L’aspect Dessiner peut être l’une des valeurs suivantes.

Valeur Signification
DVASPECT_CONTENT
Restitue une image d’écran du contenu texte dans le contexte de l’appareil hdcDraw .

Les paramètres hicTargetDev et ptd fournissent des informations sur le contexte de l’appareil cible le cas échéant (généralement une imprimante).

DVASPECT_DOCPRINT
Restitue l’objet dans le contexte de l’appareil hdcDraw comme s’il était imprimé sur une imprimante. Ainsi, l’objet services de texte peut optimiser pour l’imprimante (par exemple, ne pas peindre la couleur d’arrière-plan, s’il est blanc). En outre, certains éléments spécifiques à l’écran (tels que la sélection) ne doivent pas être rendus.

ITextServices::TxDraw doit afficher le rectangle lprcBounds , en commençant à la position de défilement actuelle.

lindex

Type : LONG

Non pris en charge.

[in] pvAspect

Type : void*

Informations sur les optimisations de dessin.

[in] ptd

Type : DVTARGETDEVICE*

Appareil cible.

[in] hdcDraw

Type : HDC

Rendu du contexte d’appareil.

[in] hicTargetDev

Type : HDC

Contexte d’informations cibles.

[in] lprcBounds

Type : LPCRECTL

Rectangle englobant (client).

[in] lprcWBounds

Type : LPCRECTL

Rectangle de découpage pour les métafichiers.

[in] lprcUpdate

Type : LPRECT

Région de mise à jour à l’intérieur de lprcBounds.

pfnContinue

Type : BOOL CALLBACK*

Non pris en charge.

dwContinue

Type : DWORD

Paramètre à passer pour continuer la fonction.

lViewId

Type : LONG

Spécifie la vue à dessiner.

Valeur Signification
TXTVIEW_ACTIVE
Dessinez la vue active place.
TXTVIEW_INACTIVE
Dessinez une vue autre que la vue active place ; par exemple, un aperçu avant impression.

Valeur retournée

Type : HRESULT

La valeur de retour est généralement S_OK.

Remarques

Cette méthode restitue l’objet services de texte. Il accepte les mêmes paramètres que la méthode IViewObject::D raw correspondante dans OLE, avec les paramètres supplémentaires lprcUpdate et lViewId . Il peut être utilisé lorsque l’hôte est actif ou inactif sur place.

Le paramètre lprcBounds donne le rectangle à afficher, également appelé rectangle client. Ce rectangle représente la position et l’étendue de l’image entière de l’objet services de texte à dessiner. Elle est exprimée dans le système de coordonnées logique de hdcDraw. Si lprcBounds a la valeur NULL , le contrôle doit être actif. Dans ce cas, l’objet services de texte doit restituer l’affichage actif sur place (autrement dit, le rectangle client qui peut être obtenu en appelant TxGetClientRect sur l’hôte).

Si le paramètre lprcUpdate n’est pas NULL, il donne au rectangle la mise à jour à l’intérieur de ce rectangle client, dans le système de coordonnées logique de hdcDraw. Si lprcUpdate a la valeur NULL, l’ensemble du rectangle client doit être peint.

L’objet services de texte doit être rendu avec le facteur de zoom approprié, qui peut être obtenu à partir du rectangle client et de la taille native donnée par TxGetExtent. Pour une présentation du facteur de zoom, consultez TxGetExtent.

Commentaires généraux sur les hôtes OLE et ITextServices::TxDraw (également pour ITextServices::OnTxSetCursor et ITextServices::TxQueryHitPoint) :

Un hôte OLE peut appeler la méthode ITextServices::TxDraw à tout moment avec n’importe quel contexte d’appareil de rendu ou rectangle client. Un objet OLE inactif conserve uniquement une étendue. Pour obtenir le rectangle dans lequel effectuer le rendu, l’hôte appelle la méthode IViewObject::D raw . Ce rectangle est valide uniquement pour l’étendue de cette méthode. Ainsi, le même contrôle peut être rendu consécutivement dans différents rectangles et différents contextes d’appareil, par exemple, car il est affiché simultanément dans différents affichages à l’écran.

Normalement, le rectangle client et le contexte d’appareil transmis à ITextServices::TxDraw ne doivent pas être mis en cache, car cela forcerait l’objet services de texte à recalculer les lignes pour chaque dessin, ce qui entraverait les performances. Au lieu de cela, l’objet services de texte peut mettre en cache les informations calculées pour un rectangle client et un contexte d’appareil spécifiques (par exemple, les sauts de ligne). Lors de l’appel suivant à ITextServices::TxDraw, toutefois, la validité des informations mises en cache doit être vérifiée avant d’être utilisées et les informations mises à jour doivent être régénérées, si nécessaire.

De plus, faites très attention lorsque le contrôle est actif sur place. Ce problème est d’autant plus complexe que ITextServices::TxDraw peut toujours être appelé pour afficher d’autres vues que celles actives sur place. En d’autres termes, le rectangle client passé à ITextServices::TxDraw peut ne pas être le même que celui actif (passé à ITextServices::OnTxInPlaceActivate et obtenu via TxGetClientRect sur l’hôte).

Configuration requise

   
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

IViewObject::D raw

OnTxInPlaceActivate

Autres ressources

RECT

RECTL

Référence

TxGetClientRect

TxGetExtent

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