1摘要绘图软件在多种工作中都有着很多的运用,而当前很多办公中的中小型绘图软件的缺乏使得小型绘图软件的开发显得十分必要。因此论文着眼于当前使用较多的C++语言作为软件的开发语言。运用C++软件中的软件基础库类(MFC)进行实用的绘图软件的开发。MFC作为C++封装技术的主要体现,不仅拥有C++语言在绘图方面上的各类优势,同时与Windows系统能够有较多的信息交互。因此基于MFC的绘图软件可以较好的将被处理的图片从抽象变成直观。同时使用MFC设计绘图软件的过程中运用图形设备接口(GDI)来与Windows进行互相的信息交互。运用MFC技术编写出的绘图软件有着界面简洁、功能较多等诸多优点。因此基于MFC的绘图软件设计为很多中小型企业或工作室的绘图提供一套较为完善的解决方案。关键字:绘图软件,MFC2AbstractDrawingsoftwareinavarietyofworkhasalotofuse,andmanyofthecurrentofficeinthelackofsmallandmediumdrawingsoftwareistheuseofgraphicssoftwaredevelopmentisverynecessary.SothepaperfocusesonthecurrentuseofmoreC++languageasasoftwaredevelopmenttools.TheuseofC++softwareinthesoftwarebaselibrary(MFC)forpracticaldrawingsoftwaredevelopment.MFCasthemainembodimentofC++encapsulationtechnology,notonlyhastheC++languageinthedrawingofvariousadvantages,whiletheWindowssystemcanhavemoreinformationexchange.SoMFC-baseddrawingsoftwarecanbebettertobeprocessedfromtheabstractimageintoanintuitive.AtthesametimetheuseofMFCdesigngraphicssoftwareintheprocessofusingthegraphicaldeviceinterface(GDI)tocommunicatewitheachotherWindowsinformation.TheuseofMFCtechnologytowritethegraphicssoftwarehasasimpleinterface,morefeaturesandmanyotheradvantages.SoMFC-baseddrawingsoftwaredesignformanysmallandmediumenterprisesorstudiodrawingstoprovideamorecompletesolution.Keywords:Drawingsoftware,MFC31、绪论1.1课题来源及意义随着计算机绘图辅助设计系统(即CAD系统)的渐渐成熟,图形绘制软件已经成为学校,工厂及各种小型工作室等不可缺的一大工具,大型绘图软件AutoCad,Solidworks,Pro/E,MatLab也被人们广泛使用,但由于占用资源过大,运行速度慢,界面操作较为复杂,不能很好满足大部分普通人需求。伴随着C++计算机高级语言的应用,MFC工具的实现是的小型软件的开发更加的便捷,MFC凭借着其出色的封装技术和便捷简单的使用特性使得开发便捷的小软件更加的方便和快捷,因此诞生了简单易懂的MFC绘图软件。MFC绘图软件凭借着其占用资源小,方便快捷,功能强大,操作简单,便于普及,很好的解决了人们日常生活中的问题。本文所设计的绘图软件正是基于MFC的这一特点。选用MFC来搭建绘图软件的整体框架。完善绘图软件的各种功能。使其能够较好的适应工程人员所赋予它们的工作。从而提高软件的实用性。1.2绘图软件的国内外发展现状在我国处于新石器时代的时候,智慧的中国人民就可以完成一些几何图形、花纹的绘制和雕刻,具有简单的图示能力。最早在春秋战国时期,对于绘图工具的色剂就有着很明确的记载,因此,可以看出绘图工具在人们日常生活中的重要地位。因此绘图软件的设计工作显得尤为重要,最早在春秋战国时期,我国人民就开始运用设计图来对工程建筑进行建设和改进,因此在工程中,提前绘制所需要完成工作的设计图显得至关重要。自秦汉以来,我国对于绘图工具和绘图方法的记载就已经是数不胜数。根据图纸可以制造出各种各样的建筑和器具,在唐宋时期《营造法式》一书可以说是一本极其详细的绘图巨作。与此同时,在欧洲十八世纪,轰轰烈烈开展的工业革命促进了科学的发展和技术的进步。法国著名的数学家和工程师蒙力总结了前任的各种绘图方法。创立了现代几何学的前身。奠定了绘图软件在科学技术中的作用,并在农业、军事、商业、建筑业等各个领域等到了长足的发展和大量的运用。可以说这是绘图推动科学进步的一大强力佐证。随着科学技术和人类生产力的大规模发展,二战结束后,在20世纪50年代美国科学家发明了世界上第一台计算机埃尼阿克,同时,随着硬件系统的发展各种计算机配套的软件也拍蓬勃的发展起来,这其中就有计算机绘图软件。在604年代初期计算机的普及使用使得CAD技术在绘图领域的大量使用,传统的人为手工绘图逐渐的北计算机绘图所取代。80年代中期之后,系统构造由过去的单一功能变成综合功能,出现了计算机辅助设计与辅助制造联成一体的计算机集成制造系统;随着科技的进一步发展和提升。各种新型的技术的出现(如图像灰度处理、图像捕捉等技术),各种学科交叉也使得新固化技术、网络技术、多处理机和并行处理技术的应用越来越广阔。而这些技术的大大发展也极大地提高了计算机绘图辅助设计系统的性能;使计算机绘图辅助设计系统问题求解能力大为增强,设计过程更趋自动化。目前,计算机绘图辅助设计系统已经被广泛运用到建筑设计、电子和电气、科学研究、机械设计、软件开发、机器人、服装业、出版业、工厂自动化、土木筑、地质、计算机艺术等各个领域。在这些领域中发挥了越来越重要的作用。计算机上各种软件如CAD软件、PS工具的诞生和发展使得绘图的形式与以往变得不同,绘图变得更加快捷有效和迅速,在我们日常生活中的作用也越来越重要。目前,主流的绘图软件有AutoCAD、Photoshop等,但是这些都是适用于大型机械的绘图软件,对于办公室里的小心绘图软件,或者课堂上临时演示的绘图软件来说都十分的缺乏。因此开发一种小型的便携式绘图软件十分有必要。1.3本文主要内容本文的主要内容为通过对MFC的了解进而了解日常绘图软件总所需要的一些常用功能,阅读相关的文献资料了解MFC开发的流程和MFC技术的特点,结合实际的需求基于MFC设计一个小型的绘图软件,设计运用C++中的各种函数来丰富绘图软件的功能。最后使用VisualStudio软件作为软件的开发工具,完成对软件总体设计。1.4本章小结本章主要叙述了随着科学技术的快速发展,计算机绘图辅助设计系统逐渐被广泛运用到生活中的各个领域,但由于目前的大部分绘图软件对人们起步要求过高,操作过于复杂,很难解决人们的问题。本论文研究的MFC绘图软件是基于C++高级语言的运用所编译的一款小型绘图软件,在众多画图软件中,凭借着体积小巧,功能强大,简单易懂等众多优点,成为炙手可热的绘图软件。52、MFC及开发工具简介2.1VisualStudio简介MicrosoftVisualStudio(简称VS软件)是美国微软公司在1997年的时候开发的一种编程语言开发平台,面向的开发语言从一开始的C/C++、VB等开发语言。经历多年的发展,VisualStudio从当初单一的集成开发环境(IDE)演化成现在多种语言集成开发平台。相对于别的开发平台,VisualStudio集成了代码编写、程序调试、编译功能、分析功能等多种功能。本文设计的基于MFC的绘图软件即是以VisualStudio作为主要的开发工具。通过在VisualStudio中进行编译和调试从而完成绘图软件的开发。在本文中将会运用到MicrosoftVisualStudio软件中的各种功能函数及多种调用指令,将在下文中一一介绍。2.2WindowsAPI函数简介Windows.API(ApplicationProgrammingInterface)就是windows应用程序接口。例如Win32就是Windows.API函数的一种。同时针对每一个应用程序都添加了相对应的框架来实现。而这些功能都会大大的减少开发人员的工作量,使得开发的流程和周期变短。本文使用VisualStudio的MFC工具同时结合WindowsGDI+合成设计实现了一个绘图软件,软件包括绘图面板,画笔工具(包括矩形的绘制、直线的绘制、椭圆的绘制),文件的保存与打开,颜色面板(选择画笔的颜色)、线条磅数控件(选择线条的粗细)等这几类主要的功能。WindowsAPI中有很多有用的函数,而这些函数的作用也是多种多样,但是总的来说,这些函数的作用可以分为以下的几类。(1)基本服务;(2)组件服务;(3)用户界面服务;(4)图形多媒体服务;(5)消息和协作;(6)网络;(7)Web服务。62.3绘图所需要运用的WindowsAPI函数简介WindowsAPI函数中有大量的功能函数可以运用到我们的绘图软件中,在本次设计中,主要运用的WindowsAPI绘图函数有以下种类,其中每一种绘图函数的种类都在右边给出了标识:AngleArc函数用一个连接弧画一条线;Arc函数画一个圆弧;BeginPath函数启动一个路径分支;CancelDC函数取消另一个线程里的长时间绘图操作;Chord函数画一个弦;CloseFigure函数描绘到一个路径时,关闭当前打开的图形;CopyEnhMetaFile函数制作指定增强型图元文件的一个副本(拷贝);CopyMetaFile函数制作指定(标准)图元文件的一个副本;CreateBrushIndirect函数在一个LOGBRUSH数据结构的基础上创建一个刷子;CreateDIBPatternBrush函数用一幅与设备无关的位图创建一个刷子,以便指定刷子样式(图案);CreateEnhMetaFile函数创建一个增强型的图元文件设备场景;CreateHatchBrush函数创建带有阴影图案的一个刷子;CreateMetaFile函数创建一个图元文件设备场景;AbortDoc函数取消一份文档的打印;AbortPrinter函数删除与一台打印机关联在一起的缓冲文件;AddForm函数为打印机的表单列表添加一个新表单;AddMonitor函数为系统添加一个打印机监视器;AddPort函数启动“添加端口”对话框,允许用户在系统可用端口列表中加入一个新端口;AddPrinter函数在系统中添加一台新打印机;AddPrinterConnection函数连接指定的打印机;AddPrinterDriver函数为指定的系统添加一个打印驱动程序;AddPrintProcessor函数为指定的系统添加一个打印处理器;AddPrintProvidor函数为系统添加一个打印供应商;AdvancedDocumentProperties函数启动打印机文档设置对话框;ClosePrinter函数关闭一个打开的打印机对象;7ConfigurePort函数针对指定的端口,启动一个端口配置对话框;ConnectToPrinterDlg函数启动连接打印机对话框,用它同访问网络的打印机连接;2.4GDI+技术原理GDI+从Windows系统中开始引入一些列的先进技术来实现一些常用的功能。而GDI+技术则是GDI技术的强化版本。其中最主要的地方是强化了可视化的属性。设计完成的操作界面和图像的边界显示都有很大的改进。相比于旧版的GDI,新的GDI+还可以提供多维的矢