CreateEnhMetaFileA, fonction (wingdi.h)

La fonction CreateEnhMetaFile crée un contexte d’appareil pour un métafichier au format amélioré. Ce contexte d’appareil peut être utilisé pour stocker une image indépendante de l’appareil.

Syntaxe

HDC CreateEnhMetaFileA(
  [in] HDC        hdc,
  [in] LPCSTR     lpFilename,
  [in] const RECT *lprc,
  [in] LPCSTR     lpDesc
);

Paramètres

[in] hdc

Handle vers un appareil de référence pour le métafichier amélioré. Ce paramètre peut être NULL ; Pour plus d’informations, consultez Remarques.

[in] lpFilename

Pointeur vers le nom de fichier pour le métafichier amélioré à créer. Si ce paramètre a la valeur NULL, le métafichier amélioré est basé sur la mémoire et son contenu est perdu lorsqu’il est supprimé à l’aide de la fonction DeleteEnhMetaFile .

[in] lprc

Pointeur vers une structure RECT qui spécifie les dimensions (en unités .01 millimètres) de l’image à stocker dans le métafichier amélioré.

[in] lpDesc

Pointeur vers une chaîne qui spécifie le nom de l’application qui a créé l’image, ainsi que le titre de l’image. Ce paramètre peut être NULL ; Pour plus d’informations, consultez Remarques.

Valeur retournée

Si la fonction réussit, la valeur de retour est un handle dans le contexte de l’appareil pour le métafichier amélioré.

Si la fonction échoue, la valeur de retour est NULL.

Remarques

Lorsque les arguments de texte doivent utiliser des caractères Unicode, utilisez la fonction CreateEnhMetaFile comme fonction à caractères larges. Lorsque les arguments de texte doivent utiliser des caractères du jeu de caractères Windows, utilisez cette fonction comme fonction ANSI.

Le système utilise l’appareil de référence identifié par le paramètre hdcRef pour enregistrer la résolution et les unités de l’appareil sur lequel une image est apparue à l’origine. Si le paramètre hdcRef a la valeur NULL, il utilise le périphérique d’affichage actuel à titre de référence.

Les membres gauche et supérieur de la structure RECT pointées vers le paramètre lpRect doivent être inférieurs aux membres droit et inférieur , respectivement. Des points le long des bords du rectangle sont inclus dans l’image. Si lpRect a la valeur NULL, l’interface de périphérique graphique (GDI) calcule les dimensions du plus petit rectangle qui entoure l’image dessinée par l’application. Le paramètre lpRect doit être fourni si possible.

La chaîne pointée vers le paramètre lpDescription doit contenir un caractère null entre le nom de l’application et le nom de l’image et doit se terminer par deux caractères null, par exemple, « XYZ Graphics Rédacteur\0Bald Eagle\0\0 », où \0 représente le caractère null. Si lpDescription a la valeur NULL, il n’existe aucune entrée correspondante dans l’en-tête enhanced-metafile.

Les applications utilisent le contexte d’appareil créé par cette fonction pour stocker une image graphique dans un métafichier amélioré. Le handle identifiant ce contexte d’appareil peut être passé à n’importe quelle fonction GDI.

Une fois qu’une application stocke une image dans un métafichier amélioré, elle peut afficher l’image sur n’importe quel appareil de sortie en appelant la fonction PlayEnhMetaFile . Lors de l’affichage de l’image, le système utilise le rectangle pointé vers le paramètre lpRect et les données de résolution de l’appareil de référence pour positionner et mettre à l’échelle l’image.

Le contexte d’appareil retourné par cette fonction contient les mêmes attributs par défaut associés à n’importe quel nouveau contexte d’appareil.

Les applications doivent utiliser la fonction GetWinMetaFileBits pour convertir un métafichier amélioré au format de métafichier Windows plus ancien.

Le nom de fichier du métafichier amélioré doit utiliser l’extension .emf.

Exemples

Pour obtenir un exemple, consultez Création d’un métafichier amélioré.

Notes

L’en-tête wingdi.h définit CreateEnhMetaFile comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête wingdi.h (inclure Windows.h)
Bibliothèque Gdi32.lib
DLL Gdi32.dll

Voir aussi

CloseEnhMetaFile

DeleteEnhMetaFile

GetEnhMetaFileDescription

GetEnhMetaFileHeader

GetWinMetaFileBits

Fonctions de métafichier

Vue d’ensemble des métafichiers

PlayEnhMetaFile

RECT