MFC 如何新建一个 Word 文件并读出最近打开的文件。

chenmd1976 2010-07-17 04:38:30
MFC 如何新建一个 Word 文件并读出最近打开的文件。并关闭保存这个文件,但不能同时关闭其它已经打开的word文件窗口。

下面是C#实现的代码有朋友帮我转写一下吧。

//创建Word文档
Word.Application WordApp = new Word.ApplicationClass();
Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);

for (int i = 1; i <= WordApp.Application.RecentFiles.Count; i++)
{
string mubiaofiles = WordApp.Application.RecentFiles[i].Path + "\\" + WordApp.Application.RecentFiles[i].Name;//目标文件
string tempfiles = info.FullName + "\\" + WordApp.Application.RecentFiles[i].Name;//临时文件

if (System.IO.File.Exists(@"" + mubiaofiles + ""))//判断目标文件是否存在
{
if (System.IO.File.Exists(@"" + tempfiles + ""))//判断临时目录是否有重名文件存在
{
string delFile = tempfiles;//删除目录中重名文件
File.Delete(delFile); //删除目录中重名文件
File.Copy(mubiaofiles, tempfiles);//复制最新文件到临时目录保存为临时文件
}
else
{
File.Copy(mubiaofiles, tempfiles);//复制最新文件到临时目录保存为临时文件
}

MyClass.wordfiles = tempfiles;
SendMail();
// MessageBox.Show(MyClass.wordfiles);
}
else
{
//MessageBox.Show("no");
}

}
...全文
285 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
youxuefen 2011-12-06
  • 打赏
  • 举报
回复
我现在也要做类似的,我是要打开PDF文件,请问有没有在VC中调用C#动态库的相关资料啊 谢谢
wuhuwy 2010-07-18
  • 打赏
  • 举报
回复
你可以在C#下做成动态库然后再在Vc中调用啊
fishion 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 chenmd1976 的回复:]
谢谢 fishion

引用 3 楼 fishion 的回复:
RecentFiles WordRFiles;
WordRFiles.AttachDispatch(m_wordApp.GetRecentFiles());
for (int i = 1; i <= WordRFile.Count(); i++)
WordRFiles.Item(i)


出现错误:
F:\Wor……
[/Quote]
for (int i = 1; i <= WordRFiles.Count(); i++)
WordRFiles.Item(i)
qqzhangjianjun 2010-07-18
  • 打赏
  • 举报
回复
ding
chenmd1976 2010-07-18
  • 打赏
  • 举报
回复
谢谢 fishion
[Quote=引用 3 楼 fishion 的回复:]
RecentFiles WordRFiles;
WordRFiles.AttachDispatch(m_wordApp.GetRecentFiles());
for (int i = 1; i <= WordRFile.Count(); i++)
WordRFiles.Item(i)
[/Quote]

出现错误:
F:\Word\WordDlg.cpp(493) : error C2065: 'WordRFile' : undeclared identifier
F:\Word\WordDlg.cpp(493) : error C2228: left of '.Count' must have class/struct/union type

fishion 2010-07-17
  • 打赏
  • 举报
回复
RecentFiles WordRFiles;
WordRFiles.AttachDispatch(m_wordApp.GetRecentFiles());
for (int i = 1; i <= WordRFile.Count(); i++)
WordRFiles.Item(i)
fishion 2010-07-17
  • 打赏
  • 举报
回复
_WordApplication m_wordApp;//定义Word提供的应用程序对象
Documents m_wordDocs;//定义Word提供的文档对象
_Document m_wordDoc; //当前的的文档对象

m_wordDocs.ReleaseDispatch();
m_wordDoc.ReleaseDispatch();
m_wordApp.m_bAutoRelease=true;

if(!m_wordApp.CreateDispatch("Word.Application")) //创建Word应用服务
{
AfxMessageBox("创建Word应用服务失败!");
return FALSE;
}

m_wordApp.SetVisible(FALSE); //设置为隐藏
//下面是打开文件定义VARIANT变量;
COleVariant varFilePath(lpszFileName);
COleVariant varstrNull("");
COleVariant varZero((short)0);
COleVariant varTrue(short(1),VT_BOOL);
COleVariant varFalse(short(0),VT_BOOL);

m_wordDocs.AttachDispatch(m_wordApp.GetDocuments());//将Documents类对象m_Docs和Idispatch接口关
m_wordDoc.AttachDispatch(m_wordDocs.Add(varstrNull,varstrNull,varstrNull,varstrNull));
RecentFiles WordRFiles;
WordRFile.AttachDispatch(m_wordApp.GetRecentFiles());
for (int i = 1; i <= WordRFile.Count(); i++)
WordRFile.Item(i)
....
大概是这样的过程吧,没测试过
chenmd1976 2010-07-17
  • 打赏
  • 举报
回复

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧