如何在mfc对话框里播放powerpoint?我想把播放powerpoint的东西内嵌到mfc对话框里...

解决方案 »

  1.   

    WebBrowser 估计可以
    参考:http://www.vckbase.com/document/viewdoc/?id=1075
      

  2.   

    谢谢上面的各位,我是想弄一个播放器一样的东西, 可以在我的程序播放powerpoint, 如"上一步", "下一步", "暂停", "停止"等, 分不够可再加, 
      

  3.   

    你可以去参考下office automation  msdn上有关于vc 操作 powerpoint的简单例子的.  
      

  4.   

    硬是没有人知道? 在MSDN里找了好多, 播放powerpoint的时候,都是弹出另外的窗口, 不能把播放的窗口内嵌到mfc中啊, 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      

  5.   

    主要内容包括:启动、打开、关闭、播放、翻到首页、翻到末叶、翻到上页、翻到下页等。
    本代码以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();
    }