ID do artigo: 169505 - Última revisão: sexta-feira, 19 de janeiro de 2007 - Revisão: 3.7

Como criar um cliente de automação do MFC para o PowerPoint

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo fornece as etapas mínimas necessárias para criar um controlador de automação para manipular o modelo de objeto do Microsoft PowerPoint usando o Microsoft Foundation Classes (MFC).

Este artigo foi desenvolvido como um tutorial. O tutorial pressupõe o seguinte:
  • Você está familiarizado com o Visual C++.
  • Você está familiarizado com como aplicativos MFC são gravados.
  • Você tem o Microsoft PowerPoint instalado na máquina de desenvolvimento.
  • Você tem o Microsoft Visual C++ instalado na sua máquina de desenvolvimento.
O aplicativo de exemplo que você criar usa opções de menu para controlar o comportamento do PowerPoint. O tutorial demonstra como
  • Use a biblioteca de objeto do PowerPoint 97 (msppt8.olb), biblioteca de objetos do PowerPoint 2000 (msppt9.olb) ou biblioteca de objetos do PowerPoint 2002 (msppt.olb) para criar classes de wrapper COleDispatchDriver.
  • Conectar-se ao objeto do aplicativo.
  • Crie apresentações.
  • Crie slides.
  • Crie formas em um slide.
  • Execute uma apresentação de slides.
Observação : Este artigo foi projetado para mostrar a você as noções básicas de controle do modelo de objeto do PowerPoint com um aplicativo Visual C++ MFC. O código criado não se destina a ser de qualidade de produção. As técnicas de codificação foram selecionadas para simplificar o processo tanto quanto possível.

Observação : como uma alternativa ao uso Microsoft Foundation Classes, você pode usar o recurso # Import do compilador Visual C++ para converter o conteúdo de uma biblioteca de tipos de classes do Visual C++.

Para obter mais informações sobre a diretiva # import, consulte a documentação on-line. Para um exemplo de código, consulte o exemplo COMEXCEL.

Mais Informações

A Microsoft fornece exemplos do Visual Basic for Applications e Visual C++ procedimentos somente para ilustração, sem garantia expressa ou implícita, incluindo, mas não se limitando a garantias implícitas de comercialização e/ou adequação a uma finalidade específica. Os Visual C++ procedimentos neste artigo são fornecidos "como estão" e a Microsoft não garante que eles podem ser usados em todas as situações. Embora engenheiros de suporte podem ajudar a explicar a funcionalidade de uma determinada macro, eles não modificarão esses exemplos para fornecer funcionalidade adicional nem eles ajudarão você criar macros para atender às suas necessidades específicas. Se você não tenha muita experiência de programação, talvez queira consultar um Microsoft Solution Providers. Provedores de solução oferecem uma ampla gama de taxa-com base em serviços, incluindo a criação de macros personalizadas. Para obter mais informações sobre Microsoft Solution Providers, chamar informações Atendimento Microsoft no telefone (800) 426-9400.

Etapa 1: Criar a estrutura de aplicativos com o AppWizard

  1. Inicie o Microsoft Visual C++ versão 5.0.
  2. Crie um novo projeto MFC AppWizard. Para fazer isso:
    1. No menu Arquivo, clique em novo.
    2. Se não estiver selecionada, clique na guia projetos.
    3. Clique no tipo de projeto MFC AppWizard (exe).
    4. No campo de nome de projeto, digite um nome para seu projeto. Essas etapas presumem que você usar o nome TestPPT.
    5. Clique em OK para iniciar AppWizard MFC.
  3. Crie um aplicativo SDI com suporte a automação OLE. Para fazer isso:
    1. Clique em documento único e clique em Avançar.
    2. Clique em Avançar novamente. Banco desse exemplo não precisa dados suporte.
    3. Desmarque a caixa de seleção controles ActiveX e marque a caixa de seleção automação. Clique em Concluir (você não precisa personalizar qualquer uma das outras etapas AppWizard neste exemplo.)
    4. Clique em OK para aceitar as especificações de projeto de esqueleto.

Etapa 2: Criar classes de wrapper COleDispatchDriver com base em Msppt8.olb (PowerPoint 97), Msppt9.olb (PowerPoint 2000) ou Msppt.olb (PowerPoint 2002)

  1. No menu Exibir, clique em ClassWizard.
  2. Clique no botão Add Class e clique em de uma biblioteca de tipos na lista drop-down.
  3. Em Importar na caixa de diálogo biblioteca de tipos, navegue até o local do arquivo Msppt8.olb para o PowerPoint 97, arquivo Msppt9.olb para PowerPoint 2000 ou Msppt.olb para o PowerPoint 2002 (o arquivo olb for encontrado na pasta do Office). Se você tiver selecionado as opções de instalação padrão para o Microsoft Office, o caminho deve ser assim:
    C:\Arquivos de programas\Microsoft Office\Office
  4. Clique em Msppt8.olb/Msppt9.olb/Msppt.olb e, em seguida, clique em Abrir.
  5. Selecione as classes que você deseja usar em seu aplicativo.

    Observação : qualquer momento que você pode adicionar classes adicionais do arquivo Msppt8.olb/Msppt9.olb/Msppt.olb, portanto, as opções que você fazer agora não são permanentes.

    Para este tutorial selecione as seguintes classes (para selecionar várias classes, mantenha pressionada a tecla Control e selecione as classes que você deseja):
        - _Application
        - SlideShowSettings
        - Presentations
        - Slides
        - _Slide
        - Shapes
        - _Presentation
    						
    clique em OK quando você tiver terminado de selecionar as classes acima e, em seguida, clique em OK para fechar o ClassWizard MFC.

Etapa 3: Criar um menu do PowerPoint

Crie um menu do PowerPoint para o aplicativo MFC com as seguintes opções:
  • Inicie o PowerPoint
  • Criar apresentação
  • Criar slide
  • Adicionar forma
  • Iniciar apresentação de slides
  • Encerre o PowerPoint
Para fazer isso:
  1. Clique na guia ResourceView na sua área de trabalho.
  2. Abra a pasta de recursos TestPPT.
  3. Abra a pasta de menu.
  4. Clique duas vezes o recurso IDR_MAINFRAME.
  5. Clique duas vezes o retângulo, que não possui nenhum texto à direita do menu ' Ajuda '. Isso abre a caixa de diálogo Propriedades do item de menu.
  6. Criar menu PowerPoint clicando na guia Geral e digitando o seguinte texto no campo @@@ Caption: PowerPoint

  7. Criar a opção do menu Iniciar PowerPoint clicando duas vezes o retângulo abaixo PowerPoint e digitando o seguinte texto no campo legenda: Iniciar o PowerPoint

  8. Criar a opção de menu de apresentação para criar duas vezes o retângulo abaixo iniciar o PowerPoint e digitando o seguinte texto no campo legenda: Criar apresentação

  9. Criar a opção de menu Criar Slide clicando duas vezes o retângulo abaixo apresentação criar e digitando o seguinte texto no campo legenda: Criar Slide

  10. Criar a opção de menu Adicionar forma duas vezes o retângulo abaixo criar slide e digitando o seguinte texto no campo de legenda: Adicionar forma

  11. Criar a opção de menu Apresentação de slides e seus menus de sub-rotina clicando duas vezes o retângulo abaixo Adicionar forma e digitando o seguinte texto no campo legenda: Iniciar apresentação de slides

  12. Criar a opção de menu do PowerPoint Fechar duas vezes o retângulo abaixo apresentações e digitando o seguinte texto no campo legenda: Fechar o PowerPoint

  13. Feche a caixa de diálogo Propriedades do item de menu.

Etapa 4: Criar ganchos para manipuladores de opção de menu

  1. No ResourceView, clique com o botão direito a opção de menu Iniciar PowerPoint e clique em ClassWizard.
  2. Selecione a mensagem de comando e clique em Adicionar função. Isso abre a função de membro adicionar diálogo caixa. Observação : Verifique se o nome do projeto é TestPPT e o nome da classe é CMainFrame.
  3. Desde que você não alterar o nome da identificação do recurso, o nome do seu manipulador deve ser:
          OnPowerpointStartpowerpoint
    					
    clique em OK para aceitar este nome.
  4. Repita as etapas 1 a 3 para criar manipuladores para as opções de menu restantes. Depois de todos os manipuladores são criados, clique em OK para fechar o ClassWizard.

Etapa 5: Adicionar o código de manipulador de comando

  1. Execute estas etapas para criar uma variável de membro para armazenar o objeto do aplicativo e clique em OK quando tiver terminado de:
    1. Clique na guia ClassView na sua área de trabalho.
    2. Abra classes TestPPT.
    3. Clique com o botão direito do mouse no ícone de classe CMainFrame e clique em Adicionar variável de membro no menu de contexto.
    4. Insira as seguintes informações em Adicionar membro variável diálogo caixa e clique em OK quando tiver terminado de:
              Variable Type: _Application
              Variable Declaration: m_ppt
              Access: Private
    					
  2. Modificar o construtor de classe CMainFrame para se conectar ao objeto do aplicativo. Quando tiver terminado, o construtor CMainFrame deve ter esta aparência:
          CMainFrame::CMainFrame()
          {
             // Create an instance of the PowerPoint application.
             m_ppt.CreateDispatch("PowerPoint.Application");
          }
    					
  3. Adicione o seguinte código para os manipuladores de comando: Iniciar PowerPoint:
          void CMainFrame::OnPowerpointStartpowerpoint()
    
          {
    
             // Check if the IDispatch connection exists with PowerPoint,
             // if not create one.
             if (m_ppt.m_lpDispatch == NULL) {
    
                // Create IDispatch connection to PowerPoint.
                m_ppt.CreateDispatch("PowerPoint.Application");
    
             };
    
             // Bring the PowerPoint application to the front.
             m_ppt.Activate();
    
          }
    					
    inicia apresentação de slides:

          void CMainFrame::OnPowerpointStartslideshow()
          {
    
             _Presentation oPresentation;
             SlideShowSettings oShow;
    
             // Attach to the Active Presentation.
             oPresentation.AttachDispatch(m_ppt.GetActivePresentation());
    
             // Attach to the slide-show settings.
             oShow.AttachDispatch(oPresentation.GetSlideShowSettings());
    
             // Run the slide show.
             oShow.Run();
    
          }
    					
    encerre o PowerPoint:

          void CMainFrame::OnPowerpointQuitpowerpoint()
          {
             // Check if PowerPoint is still running. If
             // PowerPoint is not running, quit PowerPoint
             // and release the dispatch pointer.
             if(m_ppt.m_lpDispatch != NULL) {
    
                // Quit PowerPoint. Note, the Quit command exits
                // PowerPoint without displaying any dialog boxes. So,
                // any unsaved data is lost.
                m_ppt.Quit();
    
                // Free the dispatch. This sets m_lpDispatch to NULL.
    
                m_ppt.ReleaseDispatch();
    
    
             };
          }
    					
    Criar Slide:

          void CMainFrame::OnPowerpointCreateslide()
          {
             // Connect to the active presentation. There is no error trapping.
             // If the active presentation the framework traps
             // the error and displays a message box.
             _Presentation ActivePresentation(m_ppt.GetActivePresentation());
    
             // Connect to the slides collection.
             Slides oSlides(ActivePresentation.GetSlides());
    
             // This constant is defined in the PowerPoint Object model.
             // You can use the Object Browser, with Visual Basic Editor
             // (VBE), to look up the different constant values.
             const ppLayoutTitleOnly = 11;
    
             // Add a new slide to the presentation. This code adds the new
             // slide to the end of the presentation.
             oSlides.Add(oSlides.GetCount() + 1l, ppLayoutTitleOnly);
          }
    					
    criar apresentação:

          void CMainFrame::OnPowerpointCreatepresentation()
          {
    
             Presentations PresCollection;
    
             // Make sure there is a dispatch pointer for PowerPoint.
             if(m_ppt.m_lpDispatch == NULL) {
    
                // Display a message indicating that PowerPoint is not running.
                MessageBox("PowerPoint is not running.", "Start PowerPoint");
             } else {
    
                // Bring PowerPoint to the front.
                m_ppt.Activate();
    
                // Attach the presentations collection to the PresCollection
                // variable.
                PresCollection.AttachDispatch(m_ppt.GetPresentations());
    
                // Create a new presentation.
                PresCollection.Add(1);
             };
          }
    					
    Adicionar forma:

          void CMainFrame::OnPowerpointAddshape()
          {
    
             // Connect to the active presentation object.
             _Presentation ActivePresentation(m_ppt.GetActivePresentation());
    
    
             // Connect to the Slides collection object.
             Slides oSlides(ActivePresentation.GetSlides());
    
             // Connect to the first slide in the presentation.
             long lIndex = 1;
             COleVariant SlideNumber(lIndex);
             _Slide oSlide(oSlides.Item(SlideNumber));
    
             // Connect to the Shapes collection.
    
             Shapes oShape(oSlide.GetShapes());
    
             // Create the heart shape on the slide.
             const long msoShapeHeart = 21;
             float l = 50,t = 150,w = 350,h = 350;
             oShape.AddShape(msoShapeHeart, l, t, w, h);
          }
    					

Etapa 6: Criar e executar o aplicativo

  1. No menu Build, clique em criar TestPPT.exe.

    Observação : quando você criar o projeto leva mais tempo que o normal para criar pela primeira vez. Isso ocorre porque o compilador cria um cabeçalho pré-compilado (.pch) para o projeto. O arquivo de .pch, para seu projeto, é aproximadamente quatro megabytes de tamanho.
  2. No menu Build, clique em executar TestPPT.exe. Tente selecionando as opções diferentes no menu do PowerPoint.

A informação contida neste artigo aplica-se a:
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 5.0 Standard Edition
    • Microsoft Visual C++ 6.0 Service Pack 5
Palavras-chave: 
kbmt kbprogramming kbhowto kbmacro KB169505 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 169505  (http://support.microsoft.com/kb/169505/en-us/ )