当前位置:无忧公文网 >范文大全 > 征文 > 基于MFC,的计算机集成技术开发原理

基于MFC,的计算机集成技术开发原理

时间:2022-03-04 08:28:26 浏览次数:

摘 要 MFC由于其优秀的特性和体系结构被广泛应用。介绍了MFC的设计目标及优缺点,从文件类、窗口类及数据库支持等三个方面重点阐述了MFC的层次结构,通过编写名为“MFC单文档应用程序”的单文档应用程序说明了MFC的设计原理。

关键词 微软基本类库 层次设计 文件类 窗口类

中图分类号:TP311 文献标识码:A

Development Principle on MFC Computer Integration Technology

DU Hao

(Hubei University Of Technology, Wuhan, Hubei 430068)

Abstract MFC is widely used due to its excellent features and architectures. In this paper the objectives, advantages and disadvantages of MFC are introduced. The hierarchy of MFC is classified into three types: the File class, the window class and database support. The design principle is illustrated through writing a single document MFC program named"MFC single document program".

Key words MFC; hierarchy design; CFile; CWnd

0 绪论

Microsoft Visual C++(简称VC)是由微软公司推出的基于面向对象的可视化集成编程系统,由于VC强大的自动编译功能、高级除错功能和“语法高亮”功能,被广泛应用于各类软件中。封装Win32 API 函数的基本类库(Microsoft Foundation Class Library,简称MFC)提供了图形环境下应用程序的框架及创建应用程序的组件,通过Wizard功能简化了Windows应用程序的编写工作。MFC提供了大量基类和可重用类库供用户使用,并允许用户根据不同应用环境进行扩充和自定义。大多数MFC是从CObject基类派生的,可以在运行时获得对象大小和名字。

MFC被广泛应用于用户交互界面的开发、①Pro/E二次开发、②UG的二次开发③④⑤、生物医学图像处理⑥等方面,本文从MFC的设计目标及优缺点出发,阐述MFC的层次设计,并通过实例介绍MFC的编程原理。

1 MFC的设计目标及优缺点

1.1 MFC的设计目标

MFC主要有两个设计目标:一是为Windows操作系统提供一个面向对象的接口。此目标通过编写类来封装窗口、对话框及其他对象,并引入适当的虚函数来完成。二是在不需强加系统过多工作和不增加应用程序对内存不必要开销的前提下,支持可重用、自包含性及其它面向对象程序设计(OOP)原则。⑦该目标要求用户尽早选择MFC窗口、菜单及其他对象的封装方法。

1.2 MFC的优缺点

MFC在特性和体系结构上有很多优点:MFC包含文档/视图体系结构、多文档界面(MDI)、打印支持、Active X空间支持、数据库支持、网络支持、Windows系统常用控件支持和多线程支持等。MFC不仅利用C++语言特性从框架类中派生自定义类,节约用户的时间和精力,而且MFC的分层设计使得用户可以根据需要扩展框架。同时,MFC的缺点也相当明显:MFC编程较为繁琐,程序入口较为复杂,函数名多,函数及其用法不易掌握。

2 MFC的层次设计

与目录结构类似,MFC对象层次包含一个根对象CObject,其它大多数对象是由此根对象派生而来,如处理命令消息的CCmdTarget类及其派生类、控制窗口的CWnd类及其派生类。下面分别从文件类、窗口类及数据库支持来介绍MFC的层次。

文件类CFile包含很多C++类中的Windows API调用,标准I/O文件使用fgets()和fputs()函数进行输入和输出,为了实现文档格式的转换,采用串行化将数据类成员变量按顺序存储到磁盘。文件类结构如图1所示,主要包含四个子类:CMemFile类允许用户在内存中创建文件;COleStreamFile表示数据流作为OLE结构化存储在复合文件中;CSocketFile 类是在进行Socket编程时,将需要序列化的数据传给对方;CStdioFile类允许用户对回车或换行结束的字符串进行读写。

窗口类(CWnd)是Windows系统的数据结构,提供了MFC中所有窗口类的基本功能,是所有窗口类的基类。CWnd类结构如图2所示,主要有:框架窗口类(Frame Windows)、控件类(Controls)、对话框类(Dialog Boxes)、视图类(Views)、控制栏类(Control Bars)和窗体分割类(Property Sheets)等。框架窗口类用来显示和监督用户对应用程序的命令;控件类封装了通用控件的功能;对话框类封装了用来创建对话框的Windows API,在创建时可以用对话框模版来填充;视图类用来显示用户对应用程序操作的结果;控制栏类用来创建工具栏和状态栏类;窗体分割类,即CSplitterWnd类,支持分割窗口,允许文档建立视图类实例。

MFC支持的数据库有两类:ODBC和Microsoft Jet(也称为Microsoft Access )。其中ODBC支持的数据库平台较为广泛,包括Oracle、Sybase、Informix及Microsoft SQL Server等数据库平台。Microsoft Jet数据库允许使用内置其中的Data Access Objects(DAO)对象模型。DAO为处理数据库表和查询及管理用户(用户组)的安全性能提供了丰富的模型。表1列出了支持ODBC和Microsoft Jet的数据库类用途。

3 实例分析

MFC支持的应用程序有三种,即单文档界面应用程序(SDI)、多文档界面应用程序(MDI)和基于对话框应用程序,本文以单文档应用程序为例来阐述MFC程序的编写原理。下面将建立一个单文档应用程序下,在视图客户区显示“欢迎使用MFC编程!”具体步骤如下:

利用AppWizard新建一个项目名为“MFC单文档应用程序”的单文档应用程序,首先单击“文件”→“新建”菜单命令,并在“文件”选项卡中选择”MFC AppWizard [exe]”选项,在”位置[C]”栏中选择项目即将保存的地址,”工程名称[N]”栏中输入项目的名称“MFC单文档应用程序”,然后单击”确定”按钮进入下一步。在对话框中选择“单文档[S]”,单击”完成”按钮,最后在确认对话框中单击”确定”按钮,至此,就新建了名为“MFC单文档应用程序”的单文档界面应用程序。

然后添加文档类变量:在CMFCDoc类中添加public CString类型的str变量作为程序在客户区的输出变量,并重新编写void CMFCView::OnDraw(CDC* pDC)函数代码,代码如下:

void CMFCView::OnDraw(CDC* pDC)

{

CMFCDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

pDoc->str.Format("欢迎使用MFC编程!");

pDC->TextOut(200,200,pDoc->str);

}

进行编译执行后,出现的单文档应用程序如图3所示。

4 总结

本文从MFC的设计目标出发、介绍了MFC的优缺点,从文件类、窗口类及数据库支持等三个方面着重阐述了MFC的框架,并通过编写MFC单文档应用程序实例说明了MFC程序设计的原理。

注释

① 范志先,孙殿柱,李延瑞,孙肖霞.采用MFC开发用户交互界面的新方法[J].工程图学学报,2008(4):160-163.

② 王恒,宁汝新,张旭,王铁.利用MFC二次开发Pro/E[J].计算机辅助设计与图形学学报,2004(6):869-872.

③⑦赵韩,张冰战,朱可.UG二次开发CAD系统MFC的调用方法研究[J].现代制造工程,2007(2):88-90.

④ 谌祖辉,侯忠滨,吴占阳.UG软件二次开发中MFC调用方法研究[J].机床与液压,2006(2):181-186.

⑤ 郑战光,潘淑琴,夏薇,苑明海.利用MFC进行UG二次开发的研究[J].计算机工程与设计,2007(23):5787-5791.

⑥ 罗火灵,许永忠,陈世仲.基于VTK和MFC的医学图像三维重建研究与实现[J].生物工程学进展,2010.31(1):23-28.

推荐访问: 技术开发 原理 集成 计算机 MFC