最近需要进行word操作,发现一一个控件非常好用,就是dsoframer,但是出现个问题,查了下发现网上的例程都是C#的,自己研究了下遇到点坑还是解决了
下面说详细步骤:
1.新建一个用于演示的MFC对话框程序。
2.插入ActiveX控件,选择dsoframer(要下载安装注册后,网上太多了就不说了)
3.绑定一个变量。这里就随便弄个名字m_dsoframer。
4.OnInitDialog添加程序进行处理咯先要打开一个word文档才能操作吧,
打开文件的函数是这样定义的
void Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword)
{
static BYTE parms[] = VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT ;
InvokeHelper(0x10004, DISPATCH_METHOD, VT_EMPTY, NULL, parms, &Document, &ReadOnly, &ProgId, &WebUsername, &WebPassword);
}
VARIANT类型就不常见,所以查了下解决了,代码就是这些
VARIANT vtfileName;
VARIANT readonly;
VARIANT progid;
CString fileName= _T("C://MS.docx");
vtfileName.vt = VT_BSTR;
vtfileName.bstrVal = fileName.AllocSysString();
readonly.vt = VT_BOOL;
readonly.boolVal = true;
progid.vt = VT_NULL;
m_dsoframer.Open(vtfileName,readonly,progid,progid,progid);、、打开
m_dsoframer.put_Titlebar(false);//隐藏标题栏
m_dsoframer.put_Menubar(false);//隐藏菜单栏
m_dsoframer.SetFieldValue(_T("Projectname"),_T("XXX大项目"),_T(""));//对书签进行替换操作
到这里其他操作很简单,均可参照生成的函数进行操作就行,不知道用那个函数可以参照C#版本的函数解释找对应函数,就行了。