Artigo: 308336 - Última revisão: sexta-feira, 29 de Junho de 2007 - Revisão: 5.3
Como utilizar a automatização para criar e para mostrar uma apresentação do PowerPoint 2000 ou uma apresentação do PowerPoint 2002 utilizando o Visual C++ .NET 2002 ou Visual C++ .NET 2003 e Microsoft Foundation Classes
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.
Para obter uma Microsoft Visual Basic .NET versão deste artigo, consulte 303717
(http://support.microsoft.com/kb/303717/
)
.
Para obter uma Microsoft C# .NET versão deste artigo, consulte 303718
(http://support.microsoft.com/kb/303718/
)
.
Nota Microsoft Visual C++ .NET 2002 e Microsoft Visual C++ .NET 2003 suportam o modelo de código gerido que é fornecido pelo Microsoft .NET Framework e o modelo de código do Microsoft Windows nativo não gerido. As informações neste artigo aplicam-se apenas ao código de Visual C++ não gerido.
Este artigo descreve como utilizar a automatização para criar e para mostrar uma apresentação do Microsoft PowerPoint 2000 ou uma apresentação do PowerPoint 2002 utilizando o Microsoft Visual C++ .NET 2002 ou Visual C++ .NET 2003 e Microsoft Foundation Classes.
Siga os passos descritos na secção "Criar um cliente de automatização" do seguinte artigo da base de dados de conhecimento da Microsoft para criar um cliente de automatização básico:
307473
(http://support.microsoft.com/kb/307473/
)
Como utilizar uma biblioteca de tipos para automatização do Office a partir do Visual C++ .NET
No passo 4 do artigo, seleccione a biblioteca de tipo de Microsoft PowerPoint e a biblioteca de tipos Do Microsoft Graph . A localização predefinida para o PowerPoint 2000 é C:\Program Files\Microsoft Office\Office\Msppt9.olb, a localização predefinida para o PowerPoint 2002 é C:\Program Files\Microsoft Office\Office10\Msppt.olb e a localização predefinida para o Microsoft Office PowerPoint 2003 é C:\Program Files\Microsoft Office\Office11\Msppt.olb. A localização predefinida para o Graph 2000 é C:\Program Files\Microsoft Office\Office\graph9.olb, a localização predefinida para o gráfico 2002 é C:\Program Files\Microsoft Office\Office10\Graph.exe e a localização predefinida para o gráfico 2003 é C:\Program Files\Microsoft Office\Office11\Graph.exe. Em seguida, seleccione o PowerPoint seguinte interfaces:
_Application
_Presentation
_Slide
tipo de letra
OleFormat
apresentações
ShadowFormat
forma
formas
SlideRange
diapositivos
SlideShowSettings
SlideShowTransition
SlideShowWindows
TextFrame
TextRange
Seleccione a interface do gráfico seguinte:
gráfico
No passo 6, adicione as seguintes instruções # include ao Autoprojectdlg.cpp:
Na caixa de diálogo IDD_AUTOPROJECT_DIALOG , clique com o botão direito do rato em Executar e seleccione Adicionar processador de eventos . Em eventos rotina de tratamento do assistente, seleccione o tipo de mensagem BN_CLICKED e clique em Adicionar e editar .
Substitua o seguinte código
void CAutoProjectDlg::OnBnClickedRun()
{
// TODO: Add your control notification handler code here
}
com:
void CAutoProjectDlg::OnBnClickedRun()
{
CApplication pptApp;
CPresentations pptPresentations;
CPresentation pptPresentation;
CSlides pptSlides;
LPDISPATCH pdisptemp = NULL;
//Template for the PowerPoint presentation.
const CString strPresentationTemplate("C:\\Program Files\\Microsoft "\
"Office\\Templates\\Presentation Designs\\Blends.pot");
//Bmp to put on slide.
const CString strPicture("C:\\WINNT\\Soap Bubbles.bmp");
//Automate PowerPoint and get a reference to the
//PowerPoint.Application object.
if(!pptApp.CreateDispatch("PowerPoint.Application"))
{
AfxMessageBox("Couldn't start PowerPoint and get Application object.");
return;
}
else
{
//Make the application visible.
pptApp.put_Visible(TRUE);
//Get the Presentations collection.
pptPresentations = pptApp.get_Presentations();
//Open a presentation based on the template.
pptPresentation = pptPresentations.Open(strPresentationTemplate, FALSE,
TRUE ,TRUE);
//Get the slides.
pptSlides = pptPresentation.get_Slides();
//Build Slide #1:
{
//PowerPoint.PpSlideLayout.ppLayoutTitleOnly = 11
CSlide pptSlide(pptSlides.Add(1,11));
CShapes slideshapes(pptSlide.get_Shapes());
COleVariant varindex(1L);
CShape slideshape(slideshapes.Item(varindex));
CTextFrame txtFrame(slideshape.get_TextFrame());
CTextRange txtrange(txtFrame.get_TextRange());
//Add text to the slide and format the text.
txtrange.put_Text("My Sample Presentation");
CFont0 objFont(txtrange.get_Font());
objFont.put_Name("Comic Sans MS");
objFont.put_Size(48);
//Add the picture to the slide.
pdisptemp = slideshapes.AddPicture(strPicture,FALSE, TRUE, 150,
150, 500, 350);
pdisptemp->Release();
}
//Build Slide #2:
{
//PowerPoint.PpSlideLayout.ppLayoutTitleOnly = 11
CSlide pptSlide(pptSlides.Add(2,11));
CShapes slideshapes(pptSlide.get_Shapes());
COleVariant varindex(1L);
CShape slideshape(slideshapes.Item(varindex));
CTextFrame txtFrame(slideshape.get_TextFrame());
CTextRange txtrange(txtFrame.get_TextRange());
//Add and format text.
txtrange.put_Text("My Chart");
CFont0 objFont(txtrange.get_Font());
objFont.put_Name("Comic Sans MS");
objFont.put_Size(48);
//Add a third pie chart.
CShape slideshape1(slideshapes.AddOLEObject(150,150,480,
320,"MSGraph.Chart",NULL,NULL,NULL,NULL,NULL,NULL));
COLEFormat oleformat(slideshape1.get_OLEFormat());
CChart objchart(oleformat.get_Object());
objchart.put_ChartType(-4102); // xl3dPie = -4102
}
//Build Slide #3:
{
//Add a text effect to the slide and apply shadows to
//the text effect.
//PowerPoint.PpSlideLayout.ppLayoutBlank = 12
CSlide pptSlide(pptSlides.Add(3,12));
pptSlide.put_FollowMasterBackground(FALSE);
CShapes slideshapes(pptSlide.get_Shapes());
CShape slideshape(slideshapes.AddTextEffect(26,"The End",
"Impact",96,FALSE, FALSE,239,200)); //msoTextEffect27 = 26
CShadowFormat objShadowFormat(slideshape.get_Shadow());
objShadowFormat.put_OffsetX(3);
objShadowFormat.put_OffsetY(3);
}
//Modify the slide show transition settings for all 3 slides in
//the presentation.
for(long count= 1; count <=3 ; count++)
{
COleVariant varindex(count);
CSlideRange objslideRange(pptSlides.Range(varindex));
CSlideShowTransition objSlideshowTransition(
objslideRange.get_SlideShowTransition());
objSlideshowTransition.put_AdvanceOnTime(TRUE);
objSlideshowTransition.put_AdvanceTime(3);
objSlideshowTransition.put_EntryEffect(3073); //ppEffectBoxOut = 3073
}
CSlideShowSettings objslideshowsettings(
pptPresentation.get_SlideShowSettings());
objslideshowsettings.put_StartingSlide(1);
objslideshowsettings.put_EndingSlide(3);
pdisptemp = objslideshowsettings.Run();
pdisptemp->Release();
pdisptemp = NULL;
//Run the slide show and wait for the slide show to end.
CSlideShowWindows objSlideShowWindows(pptApp.get_SlideShowWindows());
//Do some idle time processing while the show finishes.
while(objSlideShowWindows.get_Count() >= 1)
{
MSG msg;
if (PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
//Close the presentation without saving changes and quit PowerPoint.
pptPresentation.put_Saved(TRUE);
pptPresentation.Close();
pptApp.Quit();
}
}
Nota modificar as constantes strPresentationTemplate e strPicture para apontar para o nome de ficheiro e caminho completo de um PowerPoint modelo e uma imagem.
Prima F5 para compilar e executar o programa.
Clique no botão Executar para iniciar o PowerPoint, crie a apresentação e executar a apresentação de diapositivos.
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: 308336
(http://support.microsoft.com/kb/308336/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.