jianren_ko 2015-11-23 09:41 采纳率: 100%
浏览 1222

PPT 自动化开发,PPT嵌入MFC对话框后,按下ESC,幻灯片播放的窗口退出,PPT窗口也同时退出

Alert me
|
Edit
|
Delete
|
Change type
Question
You cannot vote on your own post
0

我自己创建了一个atl控件,用来实现PPT的播放、保存的功能(office 2013版本);然后将该控件嵌入MFC对话框程序里面,但是播放PPT的出现了问题:播放幻灯片的时候,能够正常播放,但是按下ESC按钮结束幻灯片播放的时候,整个PPT都退出了。我的需求是按下ESC按键的时候,播放幻灯片的页面退出,但是ppt不退出,我不清楚该如何解决这个问题,求指教

流程:我这边是用的OleCreateFromFile()方式创建的PPT对象,自己调用接口SlideShowWindowPtr的Run()来播放幻灯片;参考代码如下:

BOOL CInstanceFactory::OpenOfficeDoc(REFCLSID rclsid,const CString &strPath)
{

    pItem = new CAxDocConCntrItem(pDoc);
    ASSERT_VALID(pItem);
    CString strPath1 = strPath;
    LPCTSTR lpszPath1 = strPath1.GetBuffer();
    pItem->CreateFromFile(lpszPath1, rclsid,OLERENDER_DRAW,CF_TEXT,NULL);    

    m_pItem = pItem;

    LPDISPATCH lpDisp = m_pItem->GetDispatch_PowerPoint();
    PowerPoint::_PresentationPtr  _appPresent = lpDisp;
    DocumentWindowsPtr docsPtr = _appPresent->GetWindows();
    PowerPoint::SlideShowSettingsPtr appSlideRun = _appPresent->GetSlideShowSettings();
    SlideShowWindowPtr slideShowWidnowPtr = appSlideRun->Run();
    slideShowWidnowPtr->Activate();

}

BOOL CAxDocConCntrItem::CreateFromFile(LPCTSTR lpszFileName, REFCLSID clsid,
OLERENDER render, CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc)

{

SCODE sc = ::OleCreateFromFile(clsid, T2COLE(lpszFileName),
    IID_IUnknown, render, lpFormatEtc, m_lpClientSite, m_lpStorage,
    (LPLP)&m_lpObject);

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
    • ¥15 C# datagridview 单元格显示进度及值
    • ¥15 thinkphp6配合social login单点登录问题
    • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配