Condividi tramite


Operazioni metafile avanzate

È possibile usare l'handle per un metafile avanzato per eseguire le attività seguenti:

  • Visualizzare l'immagine archiviata in un metafile avanzato.
  • Creare copie di un metafile avanzato.
  • Modificare un metafile avanzato.
  • Recuperare la descrizione facoltativa archiviata in un metafile avanzato.
  • Recuperare una copia di un'intestazione metafile avanzata.
  • Recuperare una versione binaria di un metafile avanzato.
  • Enumerare i colori nella tavolozza facoltativa.

Queste attività vengono illustrate nelle sezioni del resto di questo argomento.

Visualizzare l'immagine archiviata in un metafile avanzato

È possibile visualizzare l'immagine archiviata in un metafile avanzato usando la funzione PlayEnhMetaFile . Passare la funzione a un handle al metafile avanzato, senza preoccuparsi del formato dei record metafile avanzati. Tuttavia, a volte è consigliabile enumerare i record nel metafile avanzato per cercare una funzione GDI specifica e modificare i parametri della funzione in qualche modo. A tale scopo, è possibile usare EnumEnhMetaFile e fornire una funzione di callback , EnhMetaFileProc, per elaborare i record metafile avanzati. Per modificare i parametri per un record metafile avanzato, è necessario conoscere il formato dei parametri all'interno del record.

Creare copie di un metafile avanzato

Alcune applicazioni creano copie di backup temporaneo (o duplicate) di un file prima di consentire all'utente di modificare l'originale. Un'applicazione può creare una copia di backup di un metafile avanzato chiamando la funzione CopyEnhMetaFile , fornendo un handle che identifica il metafile avanzato e fornendo un puntatore al nome del nuovo file.

Per creare un metafile in formato avanzato basato sulla memoria, chiamare la funzione SetEnhMetaFileBits .

Modificare un metafile avanzato

La maggior parte delle applicazioni cad (Computer-Aided Design) richiede la modifica di un'immagine archiviata in un metafile avanzato. Anche se la modifica di un metafile avanzato è un'attività complessa, è possibile usare la funzione EnumEnhMetaFile in combinazione con altre funzioni per fornire questa funzionalità nell'applicazione. La funzione EnumEnhMetaFile e la relativa funzione di callback associata , EnhMetaFileProc, consentono all'applicazione di elaborare singoli record in un metafile avanzato.

Recuperare la descrizione facoltativa archiviata in un metafile avanzato

Alcune applicazioni visualizzano la descrizione testuale di un metafile avanzato con il nome file corrispondente nella finestra di dialogo Apri . È possibile determinare se questa stringa esiste in un metafile avanzato recuperando l'intestazione del metafile con la funzione GetEnhMetaFileHeader ed esaminando uno dei relativi membri. Se la stringa esiste, l'applicazione la recupera chiamando la funzione GetEnhMetaFileDescription .

Recuperare una versione binaria di un metafile avanzato

È possibile recuperare il contenuto di un metafile chiamando la funzione GetEnhMetaFileBits ; Tuttavia, prima di recuperare il contenuto, è necessario specificare le dimensioni del file. Per ottenere le dimensioni, è possibile usare la funzione GetEnhMetaFileHeader ed esaminare il membro appropriato.

Enumerare i colori nella tavolozza facoltativa

Per ottenere colori coerenti quando un'immagine viene visualizzata in vari dispositivi di output, è possibile chiamare la funzione CreatePalette e archiviare una tavolozza logica in un metafile avanzato. Un'applicazione che visualizza l'immagine archiviata nel metafile avanzato recupera questa tavolozza e chiama la funzione RealizePalette prima di visualizzare l'immagine. Per determinare se una tavolozza viene archiviata in un metafile avanzato, recuperare l'intestazione del metafile ed esaminare il membro appropriato. Se esiste una tavolozza, è possibile chiamare la funzione GetEnhMetaFilePaletteEntries per recuperare la tavolozza logica.