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.
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.
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
Inicie o Microsoft Visual C++ versão 5.0.
Crie um novo projecto de MFC AppWizard. Para efectuar este procedimento:
No menu Ficheiro, clique em novo.
Se não seleccionada, clique no separador projectos.
Clique no tipo de projecto MFC AppWizard (exe).
No campo de nome de projecto, escreva um nome para o projecto. Estes passos assumem que utiliza o nome TestPPT.
Clique em OK para iniciar o MFC AppWizard.
Crie uma aplicação SDI com suporte para Automação OLE. Para efectuar este procedimento:
Clique único documento e clique em Seguinte.
Clique em Seguinte (Next) novamente. Este exemplo não necessita de database suporte.
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.)
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)
No menu Ver, clique em ClassWizard.
Clique no botão Adicionar classe e clique na partir de uma biblioteca de tipos na lista pendente.
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
Clique em Msppt8.olb/Msppt9.olb/Msppt.olb e, em seguida, clique em abrir.
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):
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:
Clique no separador ResourceView na área de trabalho.
Abra a pasta de recursos TestPPT.
Abra a pasta do menu.
Faça duplo clique em recursos IDR_MAINFRAME.
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.
Criar menu PowerPoint clicando no separador Geral e escrevendo o seguinte texto no campo Legenda: PowerPoint
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
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
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
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
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
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
Feche a caixa de diálogo Propriedades do item de menu.
Passo 4: Criar hooks de rotinas de tratamento as opção de menu
Na ResourceView, clique com o botão direito do rato a opção de menu Iniciar o PowerPoint e clique em ClassWizard.
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.
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.
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.
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");
}
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);
}
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.
No menu Criar, clique em executar TestPPT.exe. Tente seleccionando as diferentes opções no menu do PowerPoint.
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/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.