MFC操作WordWord格式.docx

上传人:b****1 文档编号:15309635 上传时间:2022-10-29 格式:DOCX 页数:16 大小:20.36KB
下载 相关 举报
MFC操作WordWord格式.docx_第1页
第1页 / 共16页
MFC操作WordWord格式.docx_第2页
第2页 / 共16页
MFC操作WordWord格式.docx_第3页
第3页 / 共16页
MFC操作WordWord格式.docx_第4页
第4页 / 共16页
MFC操作WordWord格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

MFC操作WordWord格式.docx

《MFC操作WordWord格式.docx》由会员分享,可在线阅读,更多相关《MFC操作WordWord格式.docx(16页珍藏版)》请在冰豆网上搜索。

MFC操作WordWord格式.docx

因为我在开发的时候遇到了很多问题,并且网上的资料很少,基本都是最基本的操作。

所以帖出来,希望能让大家在开发的过程少走些弯路!

工具:

关键字:

c++ 

, 

MFC 

要求:

系统安装 

MSOFFICE2000 

过程:

准备工作:

1. 

创建一个 

MFC(EXE) 

工程:

MFCAppWizard 

( 

exe 

),工程为对话框形式(测试用)。

2. 

在 

CLASSVIEW 

页面创建一个类:

类名为:

CWordOffice 

,类的类型为:

Classtype 

GenericClass 

3. 

在工具栏中找到 

view->

classwizard->

Automation->

addclass->

fromatyelibrary 

,然后选中 

offfice 

安装的目录中的 

MSWORD9.OLB 

,然后选中所有列出的类名,点 

OK完成。

准备工作完成,下面贴出相关部分的代码:

CWordOffice.h 

中的手动写入的代码如下(自动生成的没有加入):

1.导入类库

下面的操作基于Word2003

点击查看->

建立类向导->

AddClass...\FromatypeLibrary...->

C:

\ProgramFiles\MicrosoftOffice\Office\MSWORD9.OLB,接下来就可以看到导入的类msword.h,msword.cpp。

2.初始化COM

找到App的InitInstance()函数,在其中添加AfxOleInit()函数的调用,如:

if(!

AfxOleInit())

{

AfxMessageBox("

注册COM出错!

"

);

returnFALSE;

}

二.我自己写的Word操作类

你写的时候可以直接使用这个类,在它的基础上修改一下。

我参考自

WordOperate.h

#include"

msword.h"

#definewdCharacter1

#definewdLine5

#definewdCell12

#definewdExtend1

#definewdMove0

usingnamespacemyword;

atlbase.h"

classCWordOperate

{

public:

CWordOperate();

virtual~CWordOperate();

private:

_Applicationm_wdApp;

Documentsm_wdDocs;

_Documentm_wdDoc;

Selectionm_wdSel;

Rangem_wdRange;

//操作

//**********************创建新文档*******************************************

BOOLCreateApp();

//创建一个新的WORD应用程序

BOOLCreateDocuments();

//创建一个新的Word文档集合

BOOLCreateDocument();

//创建一个新的Word文档

BOOLCreate();

//创建新的WORD应用程序并创建一个新的文档

voidShowApp();

//显示WORD文档

voidHideApp();

//隐藏word文档

//**********************打开文档*********************************************

BOOLOpenDocument(CStringfileName);

//打开已经存在的文档。

BOOLOpen(CStringfileName);

//创建新的WORD应用程序并打开一个已经存在的文档。

BOOLSetActiveDocument(shorti);

//设置当前激活的文档。

//**********************保存文档*********************************************

BOOLSaveDocument();

//文档是以打开形式,保存。

BOOLSaveDocumentAs(CStringfileName);

//文档以创建形式,保存。

BOOLCloseDocument();

voidCloseApp();

//**********************文本书写操作*****************************************

voidWriteText(CStringszText);

//当前光标处写文本

voidWriteNewLineText(CStringszText,intnLineCount=1);

//换N行写字

voidWriteEndLine(CStringszText);

//文档结尾处写文本

voidWholeStory();

//全选文档内容

voidCopy();

//复制文本内容到剪贴板

voidInsertFile(CStringfileName);

//将本地的文件全部内容写入到当前文档的光标处。

//----------------------addbyzxx--------------------------------------

//***********************光标操作********************************************

//上下按行选择

voidSelectMoveDown(shortlineCount,shortunit);

//有选择操作的移动

voidNoneSelectMoveDown(shortlineCount,shortunit);

//仅仅移动光标,不选中

voidSelectMoveUp(shortlineCount,shortunit);

voidNoneSelectMoveUp(shortlineCount,shortunit);

//左右按列选择

voidSelectMoveLeft(shortcharCount,shortunit);

voidNoneSelectMoveLeft(shortcharCount,shortunit);

//

voidSelectMoveRight(shortcharCount,shortunit);

voidNoneSelectMoveRight(shortcharCount,shortunit);

voidMoveToFirst();

voidMoveToNextPage();

voidTypeParagraph();

voidPasteAndFormat();

voidPaste();

voidTypeBackspace(intcount);

};

WordOperate.cpp

CWordOperate:

:

CWordOperate()

}

~CWordOperate()

//操作

BOOLCWordOperate:

CreateApp()

COleExceptionpe;

m_wdApp.CreateDispatch(_T("

Word.Application"

),&

pe))

Application创建失败,请确保安装了word2000或以上版本!

MB_OK|MB_ICONWARNING);

pe.ReportError();

throw&

pe;

returnTRUE;

CreateDocuments()

if(FALSE==CreateApp())

m_wdDocs.AttachDispatch(m_wdApp.GetDocuments());

m_wdDocs.m_lpDispatch)

Documents创建失败!

CreateDocument()

Documents为空!

COleVariantvarTrue(short

(1),VT_BOOL),vOptional((long)DISP_E_PARAMNOTFOUND,VT_ERROR);

CComVariantTemplate(_T("

));

//没有使用WORD的文档模板

CComVariantNewTemplate(false),DocumentType(0),Visible;

m_wdDocs.Add(&

Template,&

NewTemplate,&

DocumentType,&

Visible);

//得到document变量

m_wdDoc=m_wdApp.GetActiveDocument();

m_wdDoc.m_lpDispatch)

Document获取失败!

//得到selection变量

m_wdSel=m_wdApp.GetSelection();

m_wdSel.m_lpDispatch)

Select获取失败!

//得到Range变量

m_wdRange=m_wdDoc.Range(vOptional,vOptional);

if(!

m_wdRange.m_lpDispatch)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1