Compartilhar via


Criação avançada de metarquivo

Você cria um meta-arquivo aprimorado usando a função CreateEnhMetaFile , fornecendo os argumentos apropriados. O sistema usa esses argumentos para manter dimensões de imagem, determinar se o metarquivo 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 o DC de referência é 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 meta-arquivo aprimorado armazenado em um disco; no entanto, há algumas instâncias quando isso não é necessário. Por exemplo, um aplicativo de processamento de palavras que fornece recursos de desenho de gráficos pode armazenar um gráfico definido pelo usuário na memória como um meta-arquivo aprimorado e, em seguida, copiar os bits de metafile aprimorados da memória para o arquivo de documento do usuário. Um aplicativo que requer um metarquivo 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 metarquivo como um arquivo temporário e o armazenará na memória.

Você pode adicionar uma descrição de texto opcional a um metarquivo que contém 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 metarquivo 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 é bem-sucedido, ele retorna um identificador que identifica um contexto de dispositivo de metafile especial. Um contexto de dispositivo de metarquivo é exclusivo, pois ele está associado a um arquivo em vez de a um dispositivo de saída. Quando o sistema processa uma função GDI que recebeu um identificador para um contexto de dispositivo de metarquivo, ele converte a função GDI em um registro de metafile aprimorado e acrescenta o registro ao final do metarquivo aprimorado.

Depois que uma imagem for concluída e o último registro for acrescentado ao metarquivo aprimorado, o aplicativo poderá fechar o arquivo chamando a função CloseEnhMetaFile . Essa função fecha e exclui o contexto especial do dispositivo de metarquivo e retorna um identificador que identifica o metarquivo aprimorado.

Para excluir um metarquivo de formato aprimorado ou um identificador de metafile de formato aprimorado, chame a função DeleteEnhMetaFile .