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

问题描述

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

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

如何调整PPT幻灯片播放速度?

  有时,需要调整PPT幻灯片播放速度.那么如何调整PPT幻灯片播放速度呢?调整PPT幻灯片播放速度的方法很简单.本文就来介绍一下调整PPT幻灯片播放速度的方法. 方法1:在"自定义动画"窗格中,选择自定义动画,单击下拉列表,选择"显示高级日程表",在"高级日程表"中,可以查看当前的速度,把光标移到表示时间的方块的右侧时,就会显示当前设置的开始时间和持续时间,当光标变成如下图所示的形状时,向右拖动鼠标,拖动的时候,鼠标上方会有时间提示,本例调整为

mfc-MFC 程序点击按钮DoModal一个对话框后,此时点击托盘关闭主窗口程序崩溃

问题描述 MFC 程序点击按钮DoModal一个对话框后,此时点击托盘关闭主窗口程序崩溃 如题,我在程序里DoModal了一个对话框,此时通过托盘关闭主窗口,程序就崩溃,而没有这个DoMal的时候关闭 主窗口确实正常的,什么原因

mfc初学者,想做一个基于对话框的类似搜索引擎的程序,有没有功能相近源代码借鉴一下

问题描述 mfc初学者,想做一个基于对话框的类似搜索引擎的程序,有没有功能相近源代码借鉴一下 关于注册时的用户名密码怎么存啊,数据库怎么用啊,搜索的文件放哪啊等等问题,不胜感激 解决方案 最简单的是嵌入一个webbrowser控件,链接到网站上. 解决方案二: 建议楼主先参考书籍去MFC 体验一下控件的使用和相关响应函数的编写吧,先动手操作再想思路 解决方案三: 先学好基础再想做实际程序,数据库怎么用这些不是一两句话能说清楚的

一步一步实现MFC扩展DLL中导出类和对话框

如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框. 一.创建MFC扩展DLL 步骤: 运行Visual Studio 6.0->File->New...->Projects: 选择Mfc AppWizard(dll),在右边Project name下输入ExportClass,单击"下一步": 选择Mfc Exte

注册表-mfc单文档文件嵌入word的文档,运行后报错

问题描述 mfc单文档文件嵌入word的文档,运行后报错 我是按照这个链接做的.https://support.microsoft.com/zh-cn/kb/238611 但运行后就出现了未能创建新对象,请确保对象已输入注册表的错误. 我用的是vs2012和office2013 请问各位大牛该如何解决这个问题

MFC对话框屏蔽Enter和ESC键

MFC对话框屏蔽Enter和ESC键参考:http://www.docin.com/p-122354833.html 方法一重载PreTranslateMessage函数 BOOL CXXDlg::PreTranslateMessage(MSG* pMsg){    //对话框屏蔽Enter和ESC键    if (WM_KEYDOWN == pMsg->message)    {        if ( (VK_RETURN == pMsg->wParam)          || (VK_

mfc-求助做过MFC DLL 串口开发的人

问题描述 求助做过MFC DLL 串口开发的人 现在遇到个问题很奇怪,CreateFile打开串口后,用GetCommState去获取端口配置,但是调试发现运行到这个函数时程序就断了,之后的调试信息都没出来,不知有没有大神知道是什么原因啊.之前直接while循环去打开各个串口都没事,后来用AfxBeginThread去开启一个线程,在线程里CreateFile后GetCommState,程序就会这里停止(退出?) 解决方案 开启线程之后,你的主线程是否已经退出了?如果主线程退出了,开启的线程就跟

visual studio 2010-VS2010 MFC一个自定义类如何调用一个对话框类中的成员变量

问题描述 VS2010 MFC一个自定义类如何调用一个对话框类中的成员变量 我从一个对话框定义了几个CString类型的edit控件,我现在写一个类想调用该对话框中的创建的edit控件变量.怎么办啊 解决方案 字符串: getdlgitem(id)->getwindowtext() 数字 getdlgitemid(id) 解决方案二: 把那个对话框的CString变量变成public的,然后就可以直接用了,当然你需要先知道你那个对话框的指针. 解决方案三: 黑马程序员---定义一个包含私有成员变

mfc如何用按钮打开新的对话框

问题描述 mfc如何用按钮打开新的对话框 想通过单击按钮打开新的对话框.不要原来的对话框.求教我该如何写代码 解决方案 你在按键的处理中,定义一个新窗体的变量,然后调用此变量对应的方法显示窗体即可.以前的窗体,是需要关闭或隐藏,也需要你来处理 解决方案二: 你在按键的处理中,定义一个新窗体的变量,然后调用此变量对应的方法显示窗体即可. 解决方案三: 首先在资源视图里面添加一个新的dlg对话框,然后给这个对话框添加一个类,之后在之前的按钮所在的文件里添加这个心的对话框对应的头文件,然后创建这个新的