Compartilhar via


Classe CMetaFileDC

Implementa um meta-arquivo do Windows, que contém uma sequência de comandos GDI (Graphics Device Interface) que você pode reproduzir para criar uma imagem ou um texto desejado.

Sintaxe

class CMetaFileDC : public CDC

Membros

Construtores públicos

Nome Descrição
CMetaFileDC::CMetaFileDC Constrói um objeto CMetaFileDC.

Métodos públicos

Nome Descrição
CMetaFileDC::Close Fecha o contexto do dispositivo e cria um identificador de meta-arquivo.
CMetaFileDC::CloseEnhanced Fecha um contexto de dispositivo do meta-arquivo aprimorado e cria um identificador do meta-arquivo aprimorado.
CMetaFileDC::Create Cria o contexto do dispositivo do meta-arquivo do Windows e o anexa ao objeto CMetaFileDC.
CMetaFileDC::CreateEnhanced Cria um contexto de dispositivo de meta-arquivo para um meta-arquivo de formato aprimorado.

Comentários

Para implementar um meta-arquivo do Windows, primeiro crie um objeto CMetaFileDC. Invoque o construtor CMetaFileDC e chame a função de membro Criar, que cria um contexto de dispositivo de meta-arquivo do Windows e o anexa ao objeto CMetaFileDC.

Em seguida, envie ao objeto CMetaFileDC a sequência de comandos CDC GDI que você pretende reproduzir. Somente os comandos GDI que criam saída, como MoveTo e LineTo, podem ser usados.

Depois de enviar os comandos desejados para o meta-arquivo, chame a função de membro Close, que fecha os contextos do dispositivo de meta-arquivo e retorna um identificador do meta-arquivo. Então descarte o objeto CMetaFileDC.

CDC::PlayMetaFile pode usar o identificador de meta-arquivo para reproduzir o meta-arquivo repetidamente. O meta-arquivo também pode ser manipulado por funções do Windows, como CopyMetaFile, que copia um meta-arquivo para o disco.

Quando o meta-arquivo não for mais necessário, exclua-o da memória com a função DeleteMetaFile Windows.

Você também pode implementar o objeto CMetaFileDC para ele lidar com chamadas de saída e atribuir chamadas GDI, como GetTextExtent. Esse meta-arquivo é mais flexível e pode reutilizar mais facilmente o código GDI geral, que geralmente consiste em uma combinação de chamadas de saída e atributo. A classe CMetaFileDC herda dois contextos de dispositivo, m_hDC e m_hAttribDC, do CDC. O contexto de dispositivo m_hDC lida com todas as chamadas de saída GDI cdc e o contexto do dispositivo m_hAttribDC lida com todas as chamadas de atributo CDC GDI. Normalmente, esses dois contextos de dispositivo se referem ao mesmo dispositivo. No caso de CMetaFileDC, o dc de atributo é definido como NULL por padrão.

Crie um segundo contexto de dispositivo que aponte para a tela, uma impressora ou um dispositivo diferente de um meta-arquivo, então chame a função de membro SetAttribDC para associar o novo contexto do dispositivo a m_hAttribDC. As chamadas de GDI para obter informações agora serão direcionadas ao novo m_hAttribDC. As chamadas de GDI de saída vão para m_hDC, o que representa o meta-arquivo.

Para mais informações sobre CMetaFileDC, confira Contextos de dispositivo.

Hierarquia de herança

CObject

CDC

CMetaFileDC

Requisitos

Cabeçalho: afxext.h

CMetaFileDC::Close

Fecha o contexto do dispositivo do meta-arquivo e cria um identificador de meta-arquivo do Windows que pode ser usado para reproduzir o meta-arquivo usando a função de membro CDC::PlayMetaFile.

HMETAFILE Close();

Valor de retorno

Um HMETAFILE válido se a função for bem-sucedida; caso contrário, NULL.

Comentários

O identificador de meta-arquivo do Windows também pode ser usado para manipular o meta-arquivo com funções do Windows, como CopyMetaFile.

Exclua o meta-arquivo após o uso chamando a função DeleteMetaFile do Windows.

CMetaFileDC::CloseEnhanced

Fecha um contexto de dispositivo de meta-arquivo aprimorado e retorna um identificador que identifica um meta-arquivo de formato aprimorado.

HENHMETAFILE CloseEnhanced();

Valor de retorno

Um identificador de um meta-arquivo aprimorado, se bem-sucedido; caso contrário, NULL.

Comentários

Um aplicativo pode usar o identificador de meta-arquivo aprimorado retornado por essa função para executar as seguintes tarefas:

  • Exibir uma imagem armazenada em um meta-arquivo aprimorado

  • Criar cópias do meta-arquivo aprimorado

  • Enumerar, editar ou copiar registros individuais no meta-arquivo aprimorado

  • Recuperar uma descrição opcional do conteúdo do meta-arquivo do cabeçalho do meta-arquivo aprimorado

  • Recuperar uma cópia do cabeçalho do meta-arquivo aprimorado

  • Recuperar uma cópia binária do meta-arquivo aprimorado

  • Enumerar as cores na paleta opcional

  • Converter um meta-arquivo de formato aprimorado em um meta-arquivo no formato Windows

Quando o aplicativo não precisa mais do identificador de meta-arquivo aprimorado, ele deve liberar o identificador chamando a função Win32 DeleteEnhMetaFile.

CMetaFileDC::CMetaFileDC

Construa um objeto CMetaFileDC em duas etapas.

CMetaFileDC();

Comentários

Primeiro, chame CMetaFileDC, depois chame Create, que cria o contexto do dispositivo de meta-arquivo do Windows e o anexa ao objeto CMetaFileDC.

CMetaFileDC::Create

Construa um objeto CMetaFileDC em duas etapas.

BOOL Create(LPCTSTR lpszFilename = NULL);

Parâmetros

lpszFilename
Aponta para uma cadeia de caracteres terminada em nulo. Especifica o nome de arquivo do meta-arquivo a ser criado. Se lpszFilename for NULL, será criado um meta-arquivo na memória.

Valor de retorno

Diferente de zero se a função for bem-sucedida; caso contrário, 0.

Comentários

Primeiro, chame o construtor CMetaFileDC, depois chame Create, que cria o contexto do dispositivo de meta-arquivo do Windows e o anexa ao objeto CMetaFileDC.

CMetaFileDC::CreateEnhanced

Cria um contexto de dispositivo para um meta-arquivo de formato aprimorado.

BOOL CreateEnhanced(
    CDC* pDCRef,
    LPCTSTR lpszFileName,
    LPCRECT lpBounds,
    LPCTSTR lpszDescription);

Parâmetros

pDCRef
Identifica um dispositivo de referência para o meta-arquivo aprimorado.

lpszFileName
Aponta para uma cadeia de caracteres terminada em nulo. Especifica o nome do arquivo para que o meta-arquivo aprimorado seja criado. Se esse parâmetro for NULL, o meta-arquivo aprimorado será baseado em memória e seu conteúdo será perdido quando o objeto for destruído ou quando a função Win32 DeleteEnhMetaFile for chamada.

lpBounds
Aponta para uma estrutura de dados RECT ou um objeto CRect que especifica as dimensões em unidades HIMETRIC (em incrementos de 0,01 milímetro) da imagem a ser armazenada no meta-arquivo aprimorado.

lpszDescription
Aponta para uma cadeia de caracteres terminada em zero que especifica o nome do aplicativo que criou a imagem, bem como o título da imagem.

Valor de retorno

Um identificador do contexto do dispositivo para o meta-arquivo aprimorado, se bem-sucedido; caso contrário, NULL.

Comentários

Esse DC pode ser usado para armazenar uma imagem independente do dispositivo.

O Windows usa o dispositivo de referência identificado pelo parâmetro pDCRef para registrar a resolução e as unidades do dispositivo em que uma imagem apareceu originalmente. Se o parâmetro pDCRef for NULL, ele usará o dispositivo de vídeo atual para referência.

Os membros esquerdos e superiores da estrutura de dados RECT apontados pelo parâmetro lpBounds devem ser menores que os membros direito e inferior, respectivamente. Pontos ao longo das bordas do retângulo são incluídos na imagem. Se lpBounds for NULL, a GDI (Graphics Device Interface) calculará as dimensões do menor retângulo que pode incluir a imagem desenhada pelo aplicativo. O parâmetro lpBounds deve ser fornecido sempre que possível.

A cadeia de caracteres apontada pelo parâmetro lpszDescription deve conter um caractere nulo entre o nome do aplicativo e o nome da imagem e deve terminar com dois caracteres nulos, por exemplo, "Editor de Gráficos XYZ\0Bald Eagle\0\0", em que \0 representa o caractere nulo. Se lpszDescription for NULL, não haverá nenhuma entrada correspondente no cabeçalho do meta-arquivo aprimorado.

Os aplicativos usam o DC criado por essa função para armazenar uma imagem gráfica em um meta-arquivo aprimorado. O identificador que identifica esse DC pode ser passado para qualquer função GDI.

Depois que um aplicativo armazena uma imagem em um meta-arquivo aprimorado, ele pode exibir a imagem em qualquer dispositivo de saída chamando a função CDC::PlayMetaFile. Ao exibir a imagem, o Windows usa o retângulo apontado pelo parâmetro lpBounds e os dados de resolução do dispositivo de referência para posicionar e dimensionar a imagem. O contexto do dispositivo retornado por essa função contém os mesmos atributos padrão associados a qualquer novo DC.

Os aplicativos devem usar a função Win32 GetWinMetaFileBits para converter um meta-arquivo aprimorado no formato de meta-arquivo do Windows mais antigo.

O nome do arquivo para o meta-arquivo aprimorado deve usar a extensão .EMF.

Confira também

Classe CDC
Gráfico da hierarquia