Compartilhar via


Criando um aplicativo de contêiner de documento ativo

A maneira mais simples e recomendada de criar um aplicativo de contêiner de documento ativo é criar um aplicativo de contêiner MFC EXE usando o Assistente de Aplicativo MFC e modificar o aplicativo para dar suporte à contenção de documentos ativos.

Para criar um aplicativo de contêiner de documento ativo

  1. No menu Arquivo , clique em Projetono submenu Novo .

  2. No painel esquerdo, clique no tipo de projeto do Visual C++ .

  3. Selecione Aplicativo MFC no painel direito.

  4. Nomeie o projeto MyProj, clique em OK.

  5. Selecione a página De Suporte a Documentos Compostos .

  6. Selecione a opção Contêiner ou Contêiner/Servidor Completo .

  7. Marque a caixa de seleção Contêiner do documento ativo.

  8. Clique em Concluir.

  9. Quando o Assistente de Aplicativo MFC terminar de gerar o aplicativo, abra os seguintes arquivos usando o Gerenciador de Soluções:

    • MyProjview.cpp
  10. Em MyProjview.cpp, faça as seguintes alterações:

    • Em CMyProjView::OnPreparePrinting, substitua o conteúdo da função pelo seguinte código:

      if (!CView::OnPreparePrinting(pInfo))
          return FALSE;
      
      if (!COleDocObjectItem::OnPreparePrinting(this, pInfo))
          return FALSE;
      
      return TRUE;
      

    OnPreparePrinting fornece suporte à impressão. Esse código substitui DoPreparePrinting, que é a preparação de impressão padrão.

    A contenção de documentos ativos fornece um esquema de impressão aprimorado:

    • Primeiro, você pode chamar o documento ativo por meio de sua IPrint interface e ordenar que ele se imprima. Isso é diferente da contenção OLE anterior, na qual o contêiner teve que renderizar uma imagem do item contido no objeto da impressora CDC .

    • Se isso falhar, instrua o item contido a imprimir a si mesmo por meio de sua interface IOleCommandTarget

    • Se isso falhar, faça sua própria renderização do item.

    As funções de membro estático COleDocObjectItem::OnPrint e COleDocObjectItem::OnPreparePrinting, conforme implementadas no código anterior, lidam com este esquema aprimorado de impressão.

  11. Adicione qualquer implementação própria e crie o aplicativo.

Consulte também

Contenção de documentos ativos