如何在mfc对话框里播放powerpoint?我想把播放powerpoint的东西内嵌到mfc对话框里...
解决方案 »
- 关于socket IO模型的接收函数设计问题请教!
- 急,VC里如何写帮助文档
- 哪位兄弟姐妹有Iphlpapi.h文件,Platform SDK装不上,急用,谢谢!
- 如何将一个颜色加亮10%(or n%)
- 教教我,想生成下面这种数据,并保存在可执行文件中~
- 排课系统算法问
- 请问如何把 f64 数据,转换成10进制
- 对数据表的Date类型字断如何构造SQL查询语句?
- MFC开发的OCX中,CImage图片放到剪贴板,但画图粘贴报获取剪贴板数据出错!
- VS 如何更改调试dll的EXE
- 关于MSN8.0中MessengerClient.dll的使用问题?
- 在调用组件过程中,时常会出现--"服务器正在运行中"的提示。
参考:http://www.vckbase.com/document/viewdoc/?id=1075
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
本代码以PowerPoint 2003为例,其他OFFICE组件及版本方法与此类似。
下面是主要步骤和代码:
1、创建MFC对话框应用程序,在向导的第3步选择automation,其他保持默认即可。
2、在对话框上添加启动、打开、关闭、运行、播放、翻到首页、翻到末叶、翻到上页、翻到下页等按钮及函数。
3、在应用程序的InitInstance()中初始化OLE,代码如下:
// Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox("Failed to initialize OLE");
return FALSE;
}
4、运用类向导添加PowerPoint类型库,类型库默认在"C:/Program Files/Microsoft Office/Office11/"下,文件名为:msppt.olb。
5、在对话框应用程序的头文件中添加:
#include "msppt8.h"
6、在在对话框应用程序的头文件中添加如下变量:
_Application app;
Presentations Presentations;
_Presentation Presentation;
SlideShowView View;
SlideShowWindow SlideShowWindow;
SlideShowSettings slideshow;
Slides slides;
_Slide slide;
7、在启动按钮函数中添加如下代码:
void CXXXDlg::OnBtnStart()
{
// Start PowerPoint and get Application object...
if(!app.CreateDispatch("Powerpoint.Application"))
{
AfxMessageBox("Couldn't start PowerPoint.");
}
else // Make PowerPoint visible and display a message
{
app.SetVisible(TRUE);
TRACE("PowerPoint is Running!");
}
}
8、在打开按钮函数中添加如下代码:
void CXXXDlg::OnBtnOpen()
{
static char BASED_CODE szFilter[] = "PowerPoint Files (*.ppt)|*.ppt||";
CFileDialog FileDlg(TRUE,"PPT",NULL,OFN_FILEMUSTEXIST|OFN_NONETWORKBUTTON
|OFN_PATHMUSTEXIST,szFilter);
FileDlg.DoModal(); // To get the selected file's path and name
CString strFileName;
strFileName = FileDlg.GetPathName(); if(!strFileName.IsEmpty())
{
Presentations = app.GetPresentations();
Presentation = Presentations.Open(strFileName,0,0,1);
}
}
9、在关闭按钮函数中添加如下代码:
void CXXXDlg::OnBtnClose()
{
if (CanExit())
app.Quit();
}
10、在运行按钮函数中添加如下代码:
void CXXXDlg::OnBtnRun()
{
Presentations = app.GetActivePresentation();
slides = Presentation.GetSlides();
// Show the first slide of the presentation
slide = slides.Item(COleVariant((long)1)); //Run the show
slideshow = Presentation.GetSlideShowSettings();
slideshow.Run();
}
11、在翻到首页按钮函数中添加如下代码:void CXXXDlg::OnBtnFirst()
{
Presentation = app.GetActivePresentation();
SlideShowWindow = Presentation.GetSlideShowWindow();
View = SlideShowWindow.GetView();
View.First();
}
12、在翻到末叶按钮函数中添加如下代码:
void CXXXDlg::OnBtnLast()
{
Presentation = app.GetActivePresentation();
SlideShowWindow = Presentation.GetSlideShowWindow();
View = SlideShowWindow.GetView();
View.Last();
}
13、在翻到前页按钮函数中添加如下代码:
void CXXXDlg::OnBtnPrevious()
{
Presentation = app.GetActivePresentation();
SlideShowWindow = Presentation.GetSlideShowWindow();
View = SlideShowWindow.GetView();
View.Previous();
}
14、在翻到下页按钮函数中添加如下代码:
void CXXXDlg::OnBtnNext()
{
Presentation = app.GetActivePresentation();
SlideShowWindow = Presentation.GetSlideShowWindow();
View = SlideShowWindow.GetView();
View.Next();
}