Compartir a través de


Creación mejorada de metarchivos

Puede crear un metarchivo mejorado mediante la función CreateEnhMetaFile , proporcionando los argumentos adecuados. El sistema usa estos argumentos para mantener las dimensiones de imagen, determinar si el metarchivo debe almacenarse en un disco o en la memoria, etc.

Para mantener las dimensiones de imagen entre los dispositivos de salida, CreateEnhMetaFile requiere la resolución del dispositivo de referencia. Este dispositivo de referencia es el dispositivo en el que apareció la imagen por primera vez y el controlador de dominio de referencia es el contexto del dispositivo asociado al dispositivo de referencia. Al llamar a la función CreateEnhMetaFile , debe proporcionar un identificador que identifique este controlador de dominio. Para obtener este identificador, llame a la función GetDC o CreateDC . También puede especificar NULL como identificador para usar el dispositivo de visualización actual para el dispositivo de referencia.

La mayoría de las aplicaciones almacenan imágenes permanentemente y, por tanto, crean un metarchivo mejorado que se almacena en un disco; sin embargo, hay algunos casos en los que esto no es necesario. Por ejemplo, una aplicación de procesamiento de texto que proporciona funcionalidades de dibujo de gráficos podría almacenar un gráfico definido por el usuario en memoria como un metarchivo mejorado y, a continuación, copiar los bits de metarchivo mejorados de la memoria en el archivo de documento del usuario. Una aplicación que requiere un metarchivo que se almacena permanentemente en un disco debe proporcionar el nombre de archivo cuando llama a CreateEnhMetaFile. Si no proporciona un nombre de archivo, el sistema trata automáticamente el metarchivo como un archivo temporal y lo almacena en memoria.

Puede agregar una descripción de texto opcional a un metarchivo que contenga información sobre la imagen y el autor. Una aplicación puede mostrar estas cadenas en el cuadro de diálogo Abrir archivo para proporcionar al usuario información sobre el contenido del metarchivo que le ayudará a seleccionar el archivo adecuado. Si una aplicación incluye la descripción del texto, debe proporcionar un puntero a la cadena cuando llama a CreateEnhMetaFile.

Cuando CreateEnhMetaFile se realiza correctamente, devuelve un identificador que identifica un contexto de dispositivo de metarchivo especial. Un contexto de dispositivo de metarchivo es único en que está asociado a un archivo en lugar de a un dispositivo de salida. Cuando el sistema procesa una función GDI que recibió un identificador en un contexto de dispositivo de metarchivo, convierte la función GDI en un registro de metarchivo mejorado y anexa el registro al final del metarchivo mejorado.

Una vez completada una imagen y el último registro se anexa al metarchivo mejorado, la aplicación puede cerrar el archivo llamando a la función CloseEnhMetaFile . Esta función cierra y elimina el contexto del dispositivo de metarchivo especial y devuelve un identificador que identifica el metarchivo mejorado.

Para eliminar un metarchivo de formato mejorado o un identificador de metarchivo de formato mejorado, llame a la función DeleteEnhMetaFile .