File>New选择MFC AppWizard,项目名:PPT
MFC AppWizard – Step1
Step2中选择Automation(这一步很关键,向导会自动添加OLE相关的初始化代码)
删除默认的静态文本框,添加5个按钮,分别设置属性如下:
View>ClassWizard…或者Ctrl+w打开类向导,引入PPT对应的类库,步骤如下:
从Office的安装目录下面找到MSPPT.OLB文件,打开。(路径一般是类似这样的C:\Program Files\Microsoft Office\Office14)
下图添加前后类视图中的对比,其中右边被框出来的6个类为新引入的:
PPTDlg.h中添加
#include "msppt.h"
然后CPPTDlg上右键添加成员变量:
_Application App;
Presentations presentations;
_Presentation presentation;
SlideShowView slideShowView;
SlideShowWindow slideShowWindow;
SlideShowSettings slideShowSettings;
CPPTDlg构造函数中添加如下语句建立一个PPT实例
if(!App.CreateDispatch("Powerpoint.Application",NULL)){
MessageBox("无法启动PPT");
}
然后就是上面5个按钮对应的响应函数
void CPPTDlg::OnOpen()
{
static char BASED_CODE szFilter[] = "PowerPoint Files (*.ppt)|*.ppt||";
CFileDialog FileDlg(TRUE,"PPT",NULL,OFN_FILEMUSTEXIST|OFN_NONETWORKBUTTON
|OFN_PATHMUSTEXIST,szFilter);
FileDlg.DoModal();
CString FileName;
FileName = FileDlg.GetPathName();
if(!FileName.IsEmpty())
{
presentations = App.GetPresentations();
presentation = presentations.Open(FileName,0,0,1);
}
}
void CPPTDlg::OnPlay()
{
slideShowSettings = presentation.GetSlideShowSettings();
slideShowSettings.Run();
}
void CPPTDlg::OnPre()
{
slideShowWindow = presentation.GetSlideShowWindow();
slideShowView = slideShowWindow.GetView();
slideShowView.Previous();
}
void CPPTDlg::OnNext()
{
slideShowWindow = presentation.GetSlideShowWindow();
slideShowView = slideShowWindow.GetView();
slideShowView.Next();
}
void CPPTDlg::OnExit()
{
if(App.m_lpDispatch!=NULL){
App.Quit();
App.ReleaseDispatch();
if (CanExit())
CDialog::OnOK();
}
}
编译运行
打开,选择ppt文件,播放,可以向前向后翻页。
参考文献:
http://support.microsoft.com/kb/169505/en-us
http://www.codeproject.com/Articles/2506/Automating-MS-Office-applications
源码及所用资源下载:
http://download.csdn.net/detail/whereyougo/7743539