Partager via


Opérations sur les objets graphiques

Une fois qu’une application a créé un contrôleur de domaine d’affichage ou d’imprimante, elle peut commencer à dessiner sur l’appareil associé ou, dans le cas du contrôleur de domaine de mémoire, elle peut commencer à dessiner sur la bitmap stockée en mémoire. Toutefois, avant le début du dessin, et parfois pendant que le dessin est en cours, il est souvent nécessaire de remplacer les objets par défaut par de nouveaux objets.

Une application peut examiner les attributs d’un objet par défaut en appelant les fonctionsGetCurrentObjectet Fonctions GetObject. La fonction GetCurrentObject retourne un handle identifiant le stylet, le pinceau, la palette, la bitmap ou la police actuels, et la fonction GetObject initialise une structure contenant les attributs de cet objet.

Certaines imprimantes fournissent des stylos résidents, des pinceaux et des polices qui peuvent être utilisés pour améliorer la vitesse de dessin dans une application. Deux fonctions peuvent être utilisées pour énumérer ces objets : EnumObjects et EnumFontFamilies. Si l’application doit énumérer les stylets résidents ou les pinceaux, elle peut appeler la fonction EnumObjects pour examiner les attributs correspondants. Si l’application doit énumérer les polices résidentes, elle peut appeler la fonction EnumFontFamilies (qui peut également énumérer les polices GDI).

Une fois qu’une application détermine qu’un objet par défaut doit être remplacé, il crée un objet en appelant l’une des fonctions de création suivantes.

Objet Graphic Fonction
Image matricielle CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap, CreateDIBitmap
Brosse CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush
Palette de couleurs CreatePalette
Police CreateFont, CreateFontIndirect
Stylo CreatePen, CreatePenIndirect, ExtCreatePen
Région CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn

 

Chacune de ces fonctions retourne un handle identifiant un nouvel objet. Une fois qu’une application a récupéré un handle, elle doit appeler la fonction SelectObject pour remplacer l’objet par défaut. Toutefois, l’application doit enregistrer le handle identifiant l’objet par défaut et utiliser ce handle pour remplacer le nouvel objet lorsqu’il n’est plus nécessaire. Lorsque l’application termine le dessin avec le nouvel objet, elle doit restaurer l’objet par défaut en appelant la fonction SelectObject, puis en supprimant le nouvel objet en appelant la fonction DeleteObject. L’échec de la suppression d’objets provoque des problèmes de performances graves.