很久以前实现的功能,现在突然要使用了,怕忘记记录一下
效果: 弹出一个ppt窗口进行幻灯片播放
1. pro : 增加 QT+=axcontainer
2.
声明一个
QAxObject *ppt_dsoframer;
构造函数里面实例化
ppt_dsoframer=new QAxObject(this);
ppt_state=ppt_dsoframer->setControl("Powerpoint.Application");
if(!ppt_state)//连接控件
QMessageBox::critical(this, "Error", "没有安装office ppt!");
3.
QString filePath = QFileDialog::getOpenFileName(0, "Open ppt", QString(), "*.pptx *ppt;; ");
if (filePath.isEmpty())
return;
ppt_dsoframer->dynamicCall("SetVisible(bool)",true); //设置窗口显示
ppt_dsoframer->querySubObject("Presentations()")->dynamicCall("Open(string)",filePath); //选择打开ppt的路径
//放映这个剪辑
ppt_dsoframer->querySubObject("ActivePresentation")->querySubObject("SlideShowSettings")->dynamicCall("Run()");
效果2:在widget嵌入一个ppt 进行播放
1.印象中可以使用QAxWidget 打开ppt 然后嵌入到widget来实现ppt的嵌入,但测试了很久还是没有实现这个功能,以后在补吧
2.使用QWindow 嵌入 第三方界面,根据资料,不确定是win10的原因还是Qt版本的原因,测试的 计算器界面一直不能嵌入到widget中,并且发现使用这个办法必须先打开第三方程序 才能获得对应句柄 然后在进行操作,有可能会有同一个程序在不同电脑上出现不同句柄的情况,所以也没有深入挣扎
3.使用.net 的 winform中嵌入Ppt、Word、Excel
实现效果:
显示效果:可对内进行增/删/改等 一些操作
反映效果: 在窗口内显示
具体步骤:
环境:win10 64位 vs2017
1、下载DsoFramer_KB311765_x86.exe 具体安装包在对应链接里面,也可以自己去下,很早以前的控件,官方已经停止维护了
2、安装,默认路径安装C:\DsoFramer。
3、注册:开始菜单——》运行
输入:regsvr32 C:\DsoFramer\dsoframer.ocx
4、附加组件,选择“COM组件”,浏览刚刚安装路径的dsoframer.ocx。
5、工具栏中多出了DSO Framer Control Object 控件,把它拖到界窗体上。
代码也很简单:
OpenFileDialog op = new OpenFileDialog();
op.ShowDialog();
string strFileName = op.FileName;
//If the user does not cancel, open the document.
if (strFileName.Length != 0)
{
this.axFramerControl1.Open(strFileName);
}
文件链接:https://download.csdn.net/download/qq_33190913/12348330