Criação avançada de metafile
Crie um metafile aprimorado usando a função CreateEnhMetaFile, fornecendo os argumentos apropriados. O sistema usa esses argumentos para manter dimensões de imagem, determinar se o metafile deve ser armazenado em um disco ou na memória e assim por diante.
Para manter dimensões de imagem entre dispositivos de saída, CreateEnhMetaFile requer a resolução do dispositivo de referência. Esse dispositivo de referência é o dispositivo no qual a imagem apareceu pela primeira vez e a referência DC é o contexto do dispositivo associado ao dispositivo de referência. Ao chamar a função CreateEnhMetaFile, você deve fornecer um identificador que identifique esse DC. Você pode obter esse identificador chamando a função GetDC ou CreateDC. Você também pode especificar NULL como o identificador para usar o dispositivo de exibição atual para o dispositivo de referência.
A maioria dos aplicativos armazena imagens permanentemente e, portanto, cria um metafile aprimorado armazenado em um disco; no entanto, há algumas instâncias em que isso não é necessário. Por exemplo, um aplicativo de processamento de palavras que fornece recursos de desenho de gráfico pode armazenar um gráfico definido pelo usuário na memória como um metafilo aprimorado e copiar os bits de metafile aprimorados da memória para o arquivo de documento do usuário. Um aplicativo que requer um metafile armazenado permanentemente em um disco deve fornecer o nome do arquivo quando chama CreateEnhMetaFile. Se você não fornecer um nome de arquivo, o sistema tratará automaticamente o metafile como um arquivo temporário e o armazenará na memória.
Você pode adicionar uma descrição de texto opcional a um metafilo contendo informações sobre a imagem e o autor. Um aplicativo pode exibir essas cadeias de caracteres na caixa de diálogo Abrir Arquivo para fornecer ao usuário informações sobre o conteúdo de metafile que ajudarão na seleção do arquivo apropriado. Se um aplicativo incluir a descrição do texto, ele deverá fornecer um ponteiro para a cadeia de caracteres quando chamar CreateEnhMetaFile.
Quando CreateEnhMetaFile for bem-sucedido, ele retornará um identificador que identifica um contexto de dispositivo de metafilo especial. Um contexto de dispositivo de metafile é exclusivo porque está associado a um arquivo e não a um dispositivo de saída. Quando o sistema processa uma função GDI que recebeu um identificador em um contexto de dispositivo de metafile, ele converte a função GDI em um registro de metafile aprimorado e acrescenta o registro ao final do metafile aprimorado.
Depois que uma imagem for concluída e o último registro for acrescentado ao metafile aprimorado, o aplicativo poderá fechar o arquivo chamando a função CloseEnhMetaFile. Essa função fecha e exclui o contexto especial do dispositivo de metafile e retorna um identificador que identifica o metafile aprimorado.
Para excluir um metafile de formato aprimorado ou um identificador de metafile de formato aprimorado, chame a função DeleteEnhMetaFile.