问题描述
- 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);
}
时间: 2024-11-16 10:28:47