Artigo: 169505 - Última revisão: sexta-feira, 19 de Janeiro de 2007 - Revisão: 3.7

Como criar um cliente de automatização de MFC do 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 | Reduzir tudo

Sumário

Este artigo fornece os passos mínimos necessários para criar um controlador de automatização para manipular o modelo de objectos Microsoft PowerPoint utilizando o Microsoft Foundation Classes (MFC).

Este artigo foi concebido como um tutorial. A iniciação efectua os seguintes pressupostos:
  • Está familiarizado com o Visual C++.
  • Está familiarizado com como MFC aplicações são escritas.
  • Tem o Microsoft PowerPoint instalado no computador de desenvolvimento.
  • Tem o Microsoft Visual C++ instalado no computador desenvolvimento.
A aplicação de exemplo que cria utiliza opções de menu para controlar o comportamento do PowerPoint. A iniciação demonstra como
  • Utilize a biblioteca de objectos de PowerPoint 97 (msppt8.olb), a biblioteca de objecto do PowerPoint 2000 (msppt9.olb) ou a biblioteca de objectos (msppt.olb) do PowerPoint 2002 para criar classes de moldagem COleDispatchDriver.
  • Ligar o objecto de aplicação.
  • Crie apresentações.
  • Crie diapositivos.
  • Crie formas num diapositivo.
  • Execute uma apresentação de diapositivos.
Nota : Este artigo foi concebido para mostrar-lhe os princípios básicos de controlar o modelo de objecto do PowerPoint com uma aplicação de Visual C++ MFC. O código criado não se destina a qualidade de produção. Foram seleccionadas as técnicas de codificação para simplificar o processo quanto possível.

Nota : como alternativa à utilização Microsoft Foundation Classes, pode utilizar a funcionalidade #import do compilador Visual C++ para converter o conteúdo de uma biblioteca de tipos para classes de Visual C++.

Para mais informações sobre a directiva #import, consulte a documentação online. Para um exemplo de código, consulte o exemplo COMEXCEL.

Mais Informação

Microsoft fornece exemplos de Visual Basic for Applications e Visual C++ procedimentos para ilustração, sem garantia expressa ou implícita, incluindo, sem limitação as garantias implícitas de comercialização e/ou adequação a um fim específico. Procedimentos do Visual C++ descritos neste artigo são fornecidos "tal como está" e a Microsoft não garante que podem ser utilizados em todas as situações. Enquanto os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de uma determinada macro, não modificarão estes exemplos para fornecer funcionalidades adicionais nem ajudarão a criar macros para cumprir necessidades específicas. Se dispõe de limitada experiência de programação, poderá consultar um dos fornecedores de soluções Microsoft. Fornecedores de solução oferecem uma vasta gama de taxa baseadas serviços, incluindo a criação de macros personalizadas. Para mais informações sobre o Microsoft Solution Providers, chamada Microsoft cliente Serviços de informação através do número (800) 426-9400.

Passo 1: Criar Application Framework com o AppWizard

  1. Inicie o Microsoft Visual C++ versão 5.0.
  2. Crie um novo projecto de MFC AppWizard. Para efectuar este procedimento:
    1. No menu Ficheiro, clique em novo.
    2. Se não seleccionada, clique no separador projectos.
    3. Clique no tipo de projecto MFC AppWizard (exe).
    4. No campo de nome de projecto, escreva um nome para o projecto. Estes passos assumem que utiliza o nome TestPPT.
    5. Clique em OK para iniciar o MFC AppWizard.
  3. Crie uma aplicação SDI com suporte para Automação OLE. Para efectuar este procedimento:
    1. Clique único documento e clique em Seguinte.
    2. Clique em Seguinte (Next) novamente. Este exemplo não necessita de database suporte.
    3. Desmarque a caixa de verificação controlos ActiveX e seleccione a caixa de verificação automatização. Clique em Concluir (não terá personalizar qualquer um dos outros passos AppWizard para este exemplo.)
    4. Clique em OK para aceitar as especificações de projecto skeleton.

Passo 2: Criar classes de mensagens publicitárias COleDispatchDriver com base em Msppt8.olb (PowerPoint 97), Msppt9.olb (PowerPoint 2000) ou Msppt.olb (PowerPoint 2002)

  1. No menu Ver, clique em ClassWizard.
  2. Clique no botão Adicionar classe e clique na partir de uma biblioteca de tipos na lista pendente.
  3. Na importação da biblioteca de tipo de caixa de diálogo, navegue para a localização do ficheiro Msppt8.olb para o PowerPoint 97, Msppt9.olb ficheiro do PowerPoint 2000 ou Msppt.olb para o PowerPoint 2002 (o ficheiro olb está localizado na pasta do Office). Se tiver seleccionado as opções de instalação predefinidas para o Microsoft Office, o caminho deve este aspecto:
    C:\Programas\Microsoft Office\Office
  4. Clique em Msppt8.olb/Msppt9.olb/Msppt.olb e, em seguida, clique em abrir.
  5. Seleccione as classes que pretende utilizar na sua aplicação.

    Nota : em qualquer altura pode adicionar classes adicionais a partir do ficheiro Msppt8.olb/Msppt9.olb/Msppt.olb, por isso, as selecções efectuadas agora não são permanentes.

    Para esta iniciação seleccione seguintes classes (para seleccionar várias classes, mantenha premida a tecla de controlo e seleccione as classes que deseja):
        - _Application
        - SlideShowSettings
        - Presentations
        - Slides
        - _Slide
        - Shapes
        - _Presentation
    						
    clique em OK quando terminar de seleccionar as classes acima e, em seguida, clique em OK para fechar ClassWizard MFC.

Passo 3: Criar um menu do PowerPoint

Crie um menu PowerPoint para a aplicação MFC com as seguintes opções:
  • Inicie o PowerPoint
  • Criar a apresentação
  • Criar diapositivos
  • Adicionar forma
  • Iniciar apresentação de diapositivos
  • Sair do PowerPoint
Para efectuar este procedimento:
  1. Clique no separador ResourceView na área de trabalho.
  2. Abra a pasta de recursos TestPPT.
  3. Abra a pasta do menu.
  4. Faça duplo clique em recursos IDR_MAINFRAME.
  5. Faça duplo clique no rectângulo, não tem texto, à direita do menu ' Ajuda '. Este procedimento abre a caixa de diálogo Propriedades do item de menu.
  6. Criar menu PowerPoint clicando no separador Geral e escrevendo o seguinte texto no campo Legenda: PowerPoint

  7. Criar a opção de menu do PowerPoint iniciar duas vezes o rectângulo abaixo PowerPoint e escrevendo o seguinte texto no campo Legenda: Iniciar o PowerPoint

  8. Criar a opção de menu criar apresentação duas vezes o rectângulo abaixo iniciar o PowerPoint e escrevendo o seguinte texto no campo Legenda: Criar apresentação

  9. Criar a opção de menu criar diapositivos fazendo duplo clique no rectângulo abaixo criar apresentação e escrevendo o seguinte texto no campo Legenda: Criar diapositivos

  10. Criar a opção de menu Adicionar forma fazendo duplo clique no rectângulo abaixo criar diapositivos e escrevendo o seguinte texto no campo Legenda: Adicionar formas

  11. Criar a opção de menu apresentação de diapositivos e respectivos menus sub fazendo duplo clique no rectângulo sob forma de adicionar e escrevendo o seguinte texto no campo Legenda: Iniciar a apresentação de diapositivos

  12. Criar a opção de menu sair do PowerPoint fazendo duplo clique no rectângulo por baixo de apresentação de diapositivos e escrevendo o seguinte texto no campo Legenda: Sair do PowerPoint

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

Passo 4: Criar hooks de rotinas de tratamento as opção de menu

  1. Na ResourceView, clique com o botão direito do rato a opção de menu Iniciar o PowerPoint e clique em ClassWizard.
  2. Seleccione a mensagem de comando e clique em Adicionar função. Este procedimento abre a Adicionar função de membro diálogo caixa. Nota : Certifique-se o nome do projecto é TestPPT e o nome da classe é CMainFrame.
  3. Fornecido não alterar o nome do ID de recurso, o nome do seu processador deve ser:
          OnPowerpointStartpowerpoint
    					
    clique em OK para aceitar este nome.
  4. Repita os passos 1 a 3 para criar processadores para as restantes opções do menu. Depois de todos os processadores são criados, clique em OK para fechar o ClassWizard.

Passo 5: Adicionar o código de processador de comandos

  1. Siga estes passos para criar uma variável de membro para armazenar o objecto de aplicação e clique em OK quando tiver terminado de:
    1. Clique no separador exibir classe na área de trabalho.
    2. Abra classes TestPPT.
    3. Clique com o botão direito do rato no ícone de classe CMainFrame e clique em Adicionar variável de membro no menu de contexto.
    4. Introduza as informações seguintes para o membro adicionar diálogo variável e, clique em OK quando tiver terminado:
              Variable Type: _Application
              Variable Declaration: m_ppt
              Access: Private
    					
  2. Modificar o Construtor de classe CMainFrame para ligar o objecto de aplicação. Quando tiver terminado, o Construtor de CMainFrame deve este aspecto:
          CMainFrame::CMainFrame()
          {
             // Create an instance of the PowerPoint application.
             m_ppt.CreateDispatch("PowerPoint.Application");
          }
    					
  3. Adicione o seguinte código para os processadores de comandos: Iniciar o 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 diapositivos:

          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();
    
          }
    					
    Sair do 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 diapositivos:

          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);
          }
    					

Passo 6: Criar e executar a aplicação

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

    Nota : criar o projecto demora mais tempo do que o normal para criar pela primeira vez. Isto acontece porque o compilador cria um cabeçalho de pré-compilado (.pch) para o projecto. O ficheiro de .pch, para o projecto é aproximadamente quatro megabytes de tamanho.
  2. No menu Criar, clique em executar TestPPT.exe. Tente seleccionando as diferentes opções 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/ )