-
请按照下面的 Microsoft 知识库文章,以创建示例项目使用该 IDispatch 接口,并在 Msppt8.olb 类型库中的成员函数定义中的步骤 1 到 12:
178749 (http://support.microsoft.com/kb/178749/EN-US/ ) 如何创建自动化项目使用 MFC 和类型库 - 请按 CTRL + W 以再次显示此类向导并选择自动选项卡,单击添加类按钮并选择一个类型库。找到 Graph8.olb,然后单击打开。选择"表"类别,然后单击确定。单击确定以关闭此类向导。
注: 与本示例将创建的演示文稿包含嵌入的 Microsoft Graph 图表 ; 这是原因的在图中添加从 Microsoft Graph 类型库 (Graph8.olb) 的类。 - AutoProjectDlg.cpp 文件顶部添加以下行:
#include "msppt8.h" #include "graph8.h"
- 将下面的代码添加到 CAutoProjectDlg::OnRun() AutoProjectDlg.cpp 文件中:
// Commonly used OLE-variants. COleVariant covTrue((short)TRUE), covFalse((short)FALSE), covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR); _Application app; Presentations presentations; _Presentation presentation; Slides slides; _Slide slide; ShapeRange shaperange; Shapes shapes; Shape shape; TextFrame textframe; TextRange textrange; Font font; FillFormat fillformat; ColorFormat colorformat; ShadowFormat shadow; CString strPic1 ="C://Program Files//Microsoft Office//Clipart//Popular//Amhappy.wmf"; CString strTemplate = "C://Program Files//Microsoft Office//Templates//Presentation Designs//Zesty.pot"; if(!app.CreateDispatch("Powerpoint.Application")) { AfxMessageBox("Could not create Powerpoint object."); return; } //Make the application visible and minimized. app.SetVisible((long)TRUE); app.SetWindowState((long) 2); //ppWindowMinimized=2 //Get the Presentations collection and create a new presentation //from a template(.POT) presentations.AttachDispatch(app.GetPresentations()); presentation = presentations.Open( strTemplate, //File name (long)0, //Read-only (long)-1, //Untitled (long)-1 //WithWindow ); slides = presentation.GetSlides(); //Add the first slide to the presentation. slide = (slides.Add((long)1, (long)11)); //pptLayoutTitleOnly=11 //Modify the text and font name of the TextFrame on the slide. shapes = slide.GetShapes(); shape = shapes.Item(COleVariant((short)1)); textframe = shape.GetTextFrame(); textrange = textframe.GetTextRange(); textrange.SetText("My Sample Presentation");//Set the text font = textrange.GetFont(); font.SetName("Comic Sans MS"); //Set the font name. font.SetSize((float)48); //Set the font size. //Insert a picture into the slide and position it. shapes.AddPicture( strPic1, //Filename (long)0, //LinkToFile (long)-1, //SaveWithDocument (float)150, //Left (float)150, //Top (float)500, //Width (float)350 //Height ); //Add the second slide to the presentation. slide = (slides.Add((long)2, (long)11)); //pptLayoutTitleOnly=11 //Modify the text and font name of the //TextFrame on the slide. shapes = slide.GetShapes(); shape = shapes.Item(COleVariant((short)1)); textframe = shape.GetTextFrame(); textrange = textframe.GetTextRange(); textrange.SetText("Look! It's a Graph!");//Set the text font = textrange.GetFont(); font.SetName("Comic Sans MS"); //Set the font name. font.SetSize((float)48); //Set the font size. //Add a Graph8 object to the slide. shape = shapes.AddOLEObject( (float)150, //Left (float)150, //Top (float)480, //Width (float)320, //Height "MSGraph.Chart", //Classname "", //FileName (long)0, //DisplayAsIcon "", //IconFileName (long)0, //IconIndex "", //IconLabel (long)0 //Link ); //Modify the charttype of the graph. Chart chart; OLEFormat olefmt = shape.GetOLEFormat(); chart = olefmt.GetObject(); chart.SetChartType((long)70); //Add the third slide to the presentation. slide = (slides.Add((long)3, (long)12)); //ppLayoutBlank = 12 //Change the background color of the slide. slide.SetFollowMasterBackground((long)0); shaperange = slide.GetBackground(); fillformat = shaperange.GetFill(); colorformat = fillformat.GetForeColor(); colorformat.SetSchemeColor((long)3); //ppShadow = 3 //Add Text Effects to the last slide shapes = slide.GetShapes(); shape = shapes.AddTextEffect( (long)27, //PresetTextEffect (msoTextEffect28 = 27) "The End", //Text "Impact", //FontName (float)96, //FontSize (long)0, //FontBold (long)0, //FontItalic (float)230, //Left (float)200 //Top ); //Apply a gradient fill to the texteffect. fillformat = shape.GetFill(); colorformat = fillformat.GetForeColor(); colorformat.SetSchemeColor((long)2); //ppForeground = 2 colorformat = fillformat.GetBackColor(); colorformat.SetSchemeColor((long)4); //ppTitle = 4 fillformat.TwoColorGradient ((long)1, (long)1); //msoGradientHorizontal = 1 //Apply a shadow to the texteffect. shadow = shape.GetShadow(); colorformat = shadow.GetForeColor(); colorformat.SetSchemeColor((long)2); //ppForeground = 2 shadow.SetVisible((long)-1); shadow.IncrementOffsetX((float)3); shadow.IncrementOffsetY((float)3); SlideShowTransition show; SlideShowSettings slideshow; //Set the Transition effects for Slide 1. slide = slides.Item(COleVariant((short)1)); show = slide.GetSlideShowTransition(); show.SetEntryEffect((long)769); //ppEffectBlindsHorizontal=769 show.SetAdvanceOnTime((long)-1); show.SetAdvanceTime((float)3); //Set the Transition effects for Slide 2. slide = slides.Item(COleVariant((short)2)); show = slide.GetSlideShowTransition(); show.SetEntryEffect((long)770); //ppEffectBlindsVertical=770 show.SetAdvanceOnTime((long)-1); show.SetAdvanceTime((float)3); //Set the Transition effects for Slide 3. slide = slides.Item(COleVariant((short)3)); show = slide.GetSlideShowTransition(); show.SetEntryEffect((long)3073); //ppEffectBoxOut=3073 show.SetAdvanceOnTime((long)-1); show.SetAdvanceTime((float)3); //Run the show. slideshow = presentation.GetSlideShowSettings(); slideshow.Run(); //Quit the application after waiting 9 seconds (the length of the //slide show). ::Sleep(9000); presentation.SetSaved((long)-1); app.Quit();
- 如果需要修改该工作分配的 strPic1 和 strTemplate 到图像文件和一个 PowerPoint 演示文稿模板的有效路径:
CString strPic1 ="C://Program Files//Microsoft Office//Clipart//Popular//Amhappy.wmf"; CString strTemplate = "C://Program Files//Microsoft Office//Templates//Presentation Designs//Zesty.pot";
如何使用 MFC 创建并显示一个 PowerPoint 演示文稿
最新推荐文章于 2024-01-15 20:35:51 发布