用MFC实现打开word文件

  在用MFC打开word文件时,需要导入.olb文件。

  通过VC++6.0 工具栏上的View / ClassWizard->Add Class选择From a Type Library…定位需要的库文件导入。

本例使用的路径为:

C:\Program Files\Microsoft Office\OFFICE11\MSWORD.OLB。

  如图(1)、图(2)所示:  

图(1)导入msword.olb文件

图(2)按“Ctlr+鼠标左键”导入相应的类,比如_Application、Documents、_Document

详细步骤如下:

1. 在VC++6.0中,新建一个基于对话框的MFC AppWizard(exe),命名为:OpenWord,如图(3)、图(4)所示:

图(3)创建一个MFC工程:OpenWord

图(4)选择“应用程序的类型”为:Dialog based

2. 为Resource Files里,为对话框添加三个控件:一个静态文本控件、一个编辑框控件、一个按钮控件。如图(5)所示:

图(5)添加三个控件

点击工具栏上的【View】/【ClassWizard】,导入对应的msword.olb文件,如上面的图(1)、图(2)所示。

4.双击对话框里的【打开】按钮,添加一个响应函数为OnButopen(),如图(6)所示:

图(7)添加“打开”按钮的响应函数OnButopen()

代码如下:

void COpenWordDlg::OnButopen()
{
    // TODO: Add your control notification handler code here
    CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
        "All Files(*.doc)|*.doc||",AfxGetMainWnd());    //构造文件打开对话框
    CString strPath;                    //声明变量
    if(dlg.DoModal() == IDOK)                       //判断是否按下"打开"按钮
    {
        strPath = dlg.GetPathName();                //获得文件路径
        m_Path.SetWindowText(strPath);      //显示文件路径
        //Word应用程序
        _Application app;
        Documents docs;
        _Document doc;
        //初始化连接
        app.CreateDispatch("word.Application");
        CComVariant a (_T(strPath)),b(false),c(0),d(true);
        docs.AttachDispatch( app.GetDocuments());
        doc.AttachDispatch(docs.Add(&a,&b,&c,&d));

        //显示
        app.SetVisible(true);
        //释放环境
        doc.ReleaseDispatch();
        docs.ReleaseDispatch();
        app.ReleaseDispatch();
    }
}

4.为编辑框关联一个Control类型的变量: m_Path,如图(8)所示:

图(8)为编辑框IDC_EDIT1关联一个Control类型的变量:m_Path

5.在OpenWorldDlg.h头文件中导入msword.h和atlbase.h

#include "msword.h"
#include <atlbase.h>

如图(9)所示:

在XXXDlg.h里添加两个引用

6.初始化COM库。在应用程序类InitInstance中添加如下语句:

::CoInitialize(NULL);

如图(10)所示:

图(10)在XXX.cpp的InitInstance()函数中,添加COM库的初始化语句

这里的XXX.cpp 指得是工程名.cpp文件:OpenWord.cpp

7.效果如下:

图(11)用MFC打开word文件效果图

时间: 2024-08-26 02:48:03

用MFC实现打开word文件的相关文章

android获取一个用于打开Word文件的intent

最近在做项目使用webview显示后,有写文档需要打开,找了一些资料,研究了一下,弄出来了! 下面贴一下主要代码: param为文档的主要路径 public static Intent getWordFileIntent(String param) { Intent intent = null; try { intent = new Intent("android.intent.action.VIEW"); intent.addCategory("android.intent

使用Jacob与Word文件交互

转自:http://www.blogjava.net/lonsy/archive/2009/01/09/250713.html Jacob项目的官方地址: Http://sourceforge.net/projects/jacob-project/官方介绍:    JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native ca

pdf文件怎么转换成word文件

怎样把PDF文件转换成Word?PDF转换成Word转换器哪个好?PDF转成Word软件在哪儿下载?工作中大家接触到大量PDF文件,由于PDF文件内容在编辑和转换上的困难,选择将PDF转成Word,再使用MSWord来进行操作即可轻松实现文件编辑. 方法/步骤 第一步,下载迅捷pdf转换器并安装.按照软件详细安装步骤.很简单的,照做就行了. 第二步,打开PDF转Wrd转换软件.在“请选择要转换到的目标文件格式”中勾选“文本转Word”. 第三步,输入选项,通过“添加文件”按钮选择需要转换的pdf

WebBrowser打开Word文档的一些注意事项

WebBrowser打开Word文档的一些注意事项 分类: C#word2010-03-31 21:26 5640人阅读 评论(3) 收藏 举报 webbrowser文档browser工具objectsql server 2009年09月27日 星期日 17:37 忙乎了多日,终于将WebBrowser中Word工具栏中搞定 在题库管理系统中,需要将试题显示出来,并进行编辑.于是,每道题都存储为一个Word文件,并保存在SQL Server中,在浏览试题库时,用WebBrowser控件显示试题是

Python中办公软件(读取word文件和读出保存别文件)

#读word文件import win32comimport win32com.client def readWordFile(path): #调用系统word功能,可以出来doc和docx两种文件 mw=win32com.client.Dispatch("Word.Application") #打开word文件 doc=mw.Documents.Open(path) for paragraphsin in doc.Paragraphs:#循环取出内容 line=paragraphsin

VS2012与VS2015同时安装用VS2012创建MFC程序时弹出编译错误”fatal error C1083: 无法打开包括文件:“mprapidef.h”: No such file or directory”的解决办法

在WIndows 7操作系统上同时安装VS2012与VS2015并用VS2012创建MFC程序时弹出编译错误"fatal error C1083: 无法打开包括文件:"mprapidef.h": No such file or directory"的解决办法: I installed vs2015 and vs2012, then the same problem occurs,however, I find a solution. open visual stud

[转载]Java开发在线打开编辑保存Word文件

Java调用logo是"P"图标的第三方插件,实现在线编辑保存Word文件(以jsp调用为例,支持SSM.SSH.SpringMVC等流行框架) 工具/原料 Eclipse或MyEclipse等java IDE环境 logo是"P"图标的第三方插件 方法/步骤 下载logo是"P"图标的第三方插件开发包:百度一下PageOffice,从官网下载   以Myeclipse为例,新建一个Web Project,比如:wordonline   解压开发

MFC - 打开执行文件

ShellExecute( hWnd: HWND; {指定父窗口句柄} Operation: PChar; {指定动作, 譬如: open.print} FileName: PChar; {指定要打开的文件或程序} Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是 nil} Directory: PChar; {缺省目录} ShowCmd: Integer {打开选项} ); 返回值: {执行成功会返回应用程序句柄; 如果这个值 <= 32, 表示执行

python处理word文件:win32com用法详解

目标:用python处理doc文件 方法:引入win32com模块 ************************************************************************** 一.安装 ************************************************************************** 首先要先下载安装win32com模块(起先在linux下装不成功,后在windows下面成功了...) 下载地址:http