Partager via


Amélioration de la création de métafichiers

Vous créez un métafichier amélioré à l’aide de la fonction CreateEnhMetaFile , en fournissant les arguments appropriés. Le système utilise ces arguments pour conserver les dimensions de l’image, déterminer si le métafichier doit être stocké sur un disque ou en mémoire, etc.

Pour conserver les dimensions de l’image sur les appareils de sortie, CreateEnhMetaFile nécessite la résolution de l’appareil de référence. Cet appareil de référence est l’appareil sur lequel l’image est apparue pour la première fois, et le contrôleur de domaine de référence est le contexte de l’appareil associé à l’appareil de référence. Lorsque vous appelez la fonction CreateEnhMetaFile , vous devez fournir un handle qui identifie ce contrôleur de domaine. Vous pouvez obtenir ce handle en appelant la fonction GetDC ou CreateDC . Vous pouvez également spécifier NULL comme handle pour utiliser le périphérique d’affichage actuel pour l’appareil de référence.

La plupart des applications stockent des images de manière permanente et créent donc un métafichier amélioré stocké sur un disque ; toutefois, il existe des cas où cela n’est pas nécessaire. Par exemple, une application de traitement de texte qui fournit des fonctionnalités de dessin de graphique peut stocker un graphique défini par l’utilisateur en mémoire sous la forme d’un métafichier amélioré, puis copier les bits de métafichier améliorés à partir de la mémoire dans le fichier document de l’utilisateur. Une application qui nécessite un métafichier stocké en permanence sur un disque doit fournir le nom de fichier lorsqu’elle appelle CreateEnhMetaFile. Si vous ne fournissez pas de nom de fichier, le système traite automatiquement le métafichier comme un fichier temporaire et le stocke en mémoire.

Vous pouvez ajouter une description de texte facultative à un métafichier contenant des informations sur l’image et l’auteur. Une application peut afficher ces chaînes dans la boîte de dialogue Ouvrir le fichier pour fournir à l’utilisateur des informations sur le contenu du métafichier qui vous aideront à sélectionner le fichier approprié. Si une application inclut la description du texte, elle doit fournir un pointeur vers la chaîne lorsqu’elle appelle CreateEnhMetaFile.

Lorsque CreateEnhMetaFile réussit, il retourne un handle qui identifie un contexte d’appareil de métafichier spécial. Un contexte de périphérique de métafichier est unique en ce qu’il est associé à un fichier plutôt qu’à un périphérique de sortie. Lorsque le système traite une fonction GDI qui a reçu un handle dans un contexte de périphérique de métafichier, il convertit la fonction GDI en enregistrement de métafichier amélioré et ajoute l’enregistrement à la fin du métafichier amélioré.

Une fois l’image terminée et le dernier enregistrement ajouté au métafichier amélioré, l’application peut fermer le fichier en appelant la fonction CloseEnhMetaFile . Cette fonction ferme et supprime le contexte d’appareil de métafichier spécial et retourne un handle identifiant le métafichier amélioré.

Pour supprimer un métafichier au format amélioré ou un handle de métafichier au format amélioré, appelez la fonction DeleteEnhMetaFile .