ATL_DRAWINFO, structure

Contient des informations utilisées pour le rendu sur différentes cibles, telles qu’une imprimante, un métafichier ou un contrôle ActiveX.

Syntaxe

struct ATL_DRAWINFO {
    UINT cbSize;
    DWORD dwDrawAspect;
    LONG lindex;
    DVTARGETDEVICE* ptd;
    HDC hicTargetDev;
    HDC hdcDraw;
    LPCRECTL prcBounds;
    LPCRECTL prcWBounds;
    BOOL bOptimize;
    BOOL bZoomed;
    BOOL bRectInHimetric;
    SIZEL ZoomNum;
    SIZEL ZoomDen;
};

Membres

cbSize
La taille de la structure, en octets.

dwDrawAspect
Spécifie la façon dont la cible doit être représentée. Les représentations peuvent inclure du contenu, une icône, une miniature ou un document imprimé. Pour obtenir la liste des valeurs possibles, consultez DVASPECT et DVASPECT2.

lindex
Partie de la cible qui est intéressante pour l’opération de tirage. Son interprétation varie en fonction de la valeur du dwDrawAspect membre.

ptd
Pointeur vers une structure DVTARGETDEVICE qui permet des optimisations de dessin en fonction de l’aspect spécifié. Notez que les objets et conteneurs plus récents qui prennent en charge les interfaces de dessin optimisées prennent également en charge ce membre. Les anciens objets et conteneurs qui ne prennent pas en charge les interfaces de dessin optimisées spécifient toujours NULL pour ce membre.

hicTargetDev
Contexte d’informations de l’appareil cible vers ptd lequel l’objet peut extraire des métriques d’appareil et tester les fonctionnalités de l’appareil. Si ptd la valeur est NULL, l’objet doit ignorer la valeur dans le hicTargetDev membre.

hdcDraw
Contexte de l’appareil sur lequel dessiner. Pour un objet sans fenêtre, le hdcDraw membre est en MM_TEXT mode de mappage avec ses coordonnées logiques correspondant aux coordonnées clientes de la fenêtre conteneur. En outre, le contexte de l’appareil doit être dans le même état que celui qui est normalement passé par un WM_PAINT message.

prcBounds
Pointeur vers une structure RECTL spécifiant le rectangle sur hdcDraw lequel l’objet doit être dessiné. Ce membre contrôle le positionnement et l’étirement de l’objet. Ce membre doit être NULL pour dessiner un objet actif sans fenêtre. Dans toutes les autres situations, NULL n’est pas une valeur légale et doit entraîner un code d’erreur E_INVALIDARG . Si le conteneur transmet une valeur non NULL à un objet sans fenêtre, l’objet doit afficher l’aspect demandé dans le contexte et le rectangle de l’appareil spécifiés. Un conteneur peut demander à un objet sans fenêtre d’afficher une deuxième vue non active de l’objet ou d’imprimer l’objet.

prcWBounds
S’il hdcDraw s’agit d’un contexte d’appareil de métafichier (voir GetDeviceCaps dans le Kit de développement logiciel (SDK) Windows), il s’agit d’un pointeur vers une RECTL structure spécifiant le rectangle englobant dans le métafichier sous-jacent. La structure rectangle contient l’étendue de la fenêtre et l’origine de la fenêtre. Ces valeurs sont utiles pour dessiner des métafichiers. Le rectangle indiqué par prcBounds est imbriqué à l’intérieur de ce prcWBounds rectangle ; ils se trouvent dans le même espace de coordonnées.

bOptimize
Différent de zéro si le dessin du contrôle doit être optimisé, sinon 0. Si le dessin est optimisé, l’état du contexte de l’appareil est automatiquement restauré lorsque vous avez terminé le rendu.

bZoomed
Différent de zéro si la cible a un facteur de zoom, sinon 0. Le facteur de zoom est stocké dans ZoomNum.

bRectInHimetric
Différent de zéro si les dimensions de prcBounds sont dans HIMETRIC, sinon 0.

ZoomNum
Largeur et hauteur du rectangle dans lequel l’objet est rendu. Le facteur de zoom le long de l’axe x (la proportion de la taille naturelle de l’objet à son étendue actuelle) de la cible est la valeur de ZoomNum.cx division par la valeur de ZoomDen.cx. Le facteur de zoom le long de l’axe y est obtenu de manière similaire.

ZoomDen
Largeur et hauteur réelles de la cible.

Notes

L’utilisation classique de cette structure est la récupération d’informations pendant le rendu de l’objet cible. Par exemple, vous pouvez récupérer des valeurs de ATL_DRAWINFO à l’intérieur de votre surcharge de CComControlBase ::OnDrawAdvanced.

Cette structure stocke les informations pertinentes utilisées pour afficher l’apparence d’un objet pour l’appareil cible. Les informations fournies peuvent être utilisées dans le dessin à l’écran, une imprimante ou même un métafichier.

Spécifications

En-tête : atlctl.h

Voir aussi

Classes et structs
IViewObject ::D raw
CComControlBase ::OnDrawAdvanced