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.
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 |
---|---|
|
Dessinez la vue active place. |
|
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
Autres ressources
Référence