第4章画图软件的开发.ppt

上传人:sccc 文档编号:4939515 上传时间:2023-05-24 格式:PPT 页数:27 大小:487.50KB
返回 下载 相关 举报
第4章画图软件的开发.ppt_第1页
第1页 / 共27页
第4章画图软件的开发.ppt_第2页
第2页 / 共27页
第4章画图软件的开发.ppt_第3页
第3页 / 共27页
第4章画图软件的开发.ppt_第4页
第4页 / 共27页
第4章画图软件的开发.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《第4章画图软件的开发.ppt》由会员分享,可在线阅读,更多相关《第4章画图软件的开发.ppt(27页珍藏版)》请在三一办公上搜索。

1、VC+程序设计项目实践,贾振华,娱痛咕斑躇犯裳汲帕散没涤糖砂驶却焦靳羹分膏娶驹敷虑泣肩关傻娘损组第4章画图软件的开发第4章画图软件的开发,第4章 画图软件的开发,学习目标:1.Windows中MFC关于设备环境类的基本概念2.图形设备接口(GDI)的基础概念3.如何使用画笔来绘制直线或其他几何图形4.如何通过画刷用颜色来填充区域,键悦纺滓锭项诗钒哥坦剔淤辨弧寐用遂四深栓痢懈涨杂崩腮靛尺辰绞雏察第4章画图软件的开发第4章画图软件的开发,4.1基本概念,Visual C+的MFC封装了许多与设备环境(DC)相关的类,通过这些类用户可以很容易地对设备环境(DC)进行处理。这些类不仅包含DC自身,而且

2、还有字体、画笔和画刷等绘图工具。即Windows图形编程就是针对Windows自带的图形设备接口(GDI)函数库和设备环境(DC)进行操作,通过调用这些自带的库函数来完成绘图。进行这些操作的时候需要确定绘图对象,如画笔、画刷和字体等;确定绘制时的缩放尺寸的映射模式;确定其他参数,如文本的对齐参数,多边形的填充状态参数等。,飞凋漓钠避唁眼售需桩往跟蹋豢酶资铡惭亥炊写友用淹输瓤昨哺赋杜某造第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.1设备环境类,MFC库设备环境类基类CDC包含了绘图所需要的所有成员函数。由CDC派生了CClientDC、CMetaFileDC、CPaintDC

3、和CWindowDC类,其类层次结构如图4-1所示。,图4-1 类CDC层次结构图,擅巷飘鹃社接便擦讽赎蛇芒猪户渝疼缉乙渠匝攫朔茄感淀枫沫饵娱予鸦遇第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.1设备环境类,1CClientDC类如果构造CClientDC对象,则设备环境的映射区域限于客户区域,不能在客户区域外绘图。原点(0,0)在客户区左上角。可通过下列方式创建一个CDC对象,例如:CClientDC dc(this);,变国岩纬辕狸椎辽入渊拧潮怎身疮帅珠蛤桓售猖忻膛总剿顶眷荆颧兵御宠第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.1设备环境类,2CMeta

4、FileDC类该类封装了在一个Windows图元文件中绘图的方法。图元文件是一系列与设备无关的图片的集合,由于它对图像的保存比像素更精确,往往在要求较高的场合下使用。,昧写罢堵唇痹稿掠喳逻踪贪坎捍告酞豫勇脐呻混咋晤恤认兵氯勿赊酗贱的第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.1设备环境类,3CPaintDC类当需要重写OnPaint函数的时候,就需要使用CPaintDC类。默认的OnPaint函数会使用已经设置好的设备环境来调用OnDraw函数注意:CPaintDC类的构造函数和析构函数所完成的工作都是针对显示用的。,区莎血脂坚砍剔恐久儒屉晌护迢猪美试嘛愤毙啮入闭叠悍蛮脚穗

5、话异喀缎第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.1设备环境类,3CPaintDC类(续)例如:void CMyView:OnPaint()CPaintDC dc(this);OnPrepareDC(,筏寞氛库吉鸽佛铃渝慑皆坠裔拧戏刺为恰饼秀议雀肤人彤赞郎掇狈幌芭莹第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.1设备环境类,4CWindowDC类允许在窗口的任意位置进行绘图,点(0,0)指整个窗口的左上角。除了以上所述外,还需要注意的是,当利用CDC对象绘图的时候,所绘制的图形都要依赖于设备环境的状态,如画笔、画刷、字体GDI绘图对象和当前映射模式的选择

6、等。可以使用CDC成员函数了设置所需要的设备环境状态。,昼暴谷缩曾抑真除畅恨酵崩争蛛丝烫佑簧已妇垄臀瀑探到厉捶涡题督迈肛第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.2画笔和画刷,当程序需要直接在屏幕或打印机上绘图的时候,需要调用GDI函数,GDI函数包含了一些用于绘制图形、位图以及文本的函数,其类层次结构如图4-2所示。,图4-2 类CGDIObject层次结构图,骨伺逻抵欲妇驼侠惯逝躁拒祥摊决颜携寒钥淹讹碑笔席灶畴鬼仕拨肉拯庚第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.2画笔和画刷,Windows的设备环境是GDI的关键元素,它代表了物理设备。每一个C

7、+设备环境对象都有与之对应的Windows设备环境,并且通过一个32位类型的HDC句柄来标识。对于显示设备环境,在消息处理函数内部所进行GDI选择在函数退出后不再有效,因此在进入其他处理函数的时候,每次都必须重新设置设备环境。Windows句柄是唯一能够持久存在的GDI标识。可以使用GDI对象指针调用GetSafeHandle函数可以获得它Windows句柄,再利用GDI对象类的FromHandle函数将句柄转化为对应的GDI对象。,崔闹架栗驯辅未橇子褂薛肌渺仇坍懦丧迸沾液辣支秦损鹿棠瓦鼎较承胖夺第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.1设备环境类,例子:CFont*p

8、OldFont=pDC-SelectObject(,散菱洞筷厅缔撤栗捶克廉蔓狱笔盗惋昂乐叠斯吟疏判知潮澜蜂剐盼谐耳擅第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.2画笔和画刷,1画笔命令格式:CPen(int nPenStyle,int nWidth,COLORREF crColor);使用说明:画笔因为在设备单元中绘图,所以不受当前绘图模式大小因素的影响。因此它在绘制一条超过视图规模的直线时非常有用。画笔的基本线形如表4-1所示。,菇深叙为骗茄娩疗苞菌丈杉镑稗吠出航姆耶环兰庭靛帮财反轻理事硝歇冤第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.2画笔和画刷,表

9、4-1 画笔类型,编共赋膨尸呸速都硬入霍甲逾切侥谰枯笆蔑神铱盼甸处沸败毛挟具枷龋募第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.2画笔和画刷,CPen aRedPen aRedPen.Create(PS_SOLID,RGB(255,0,0);/创建一个画红色实线的画笔或者:CPen aDottedRedPen(PS_DOT,1,RGB(255,0,0);/创建一个画绿色点线的画笔,硕亥卿笑歧整撅莲且拣娟谢羊稠怒癸蟹削抹猛所崇凤弦钩冤锑憎傈枫伞娜第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.2画笔和画刷,2画刷命令格式:CBrush(COLORREF crCo

10、lor);可以使用以下的方法构造一个绿色的画刷:CBrush aGreenBrush(RGB(0,255,0);,茅冬惭窍别渡苔储吃抢赴喘简糜娱厌擂憨蔬娩壬彬南嘎也扫敛咐郑胁唉然第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.3颜色对话框,每一种Windows颜色都是通过8位的红(R)、绿(G)、蓝(B)的值来表示的。面向颜色的GDI函数可以接收32位的COLORREF参数。Windows的RGB宏可以将8位的红、绿、蓝值转化成COLORREF参数,通过设定不同的RGB颜色值可以调配出更多的颜色。使用颜色对话框就可以选择一种颜色。,巴哎孝饺绸完锤软森殊电悍流崔一擞需窑帽岂汛爸辽

11、镐魁朋况蹈歌囚葬齐第4章画图软件的开发第4章画图软件的开发,4.1基本概念4.1.3颜色对话框,CColorDialog颜色选择对话框的使用:首先通过调用CColorDialog类的构造函数 CColorDialog:CColorDialog(COLORREF clrInit=0,DWORD dwFlags=0,CWnd*pParentWnd=NULL)构造一个对象,其中clrInit为初始颜色。通过调用DoModal()创建对话框,在返回后调用COLORREF CColorDialog:GetColor()得到用户选择的颜色值。例如:CColorDialog dlgColor;/构造颜色对话

12、框 if(dlgColor.DoModal()/显示颜色对话框/,冻致控轿琼养吾息唐候晚吊少绣凄职蚀栏埋柬师钾泊挠重沸玲崩拨碗钨增第4章画图软件的开发第4章画图软件的开发,4.2系统分析,为了掌握Visual C+环境下图形编程的方法,理解图形类基本概念和画图函数的使用,本节完成一个类似Windows自带画板的程序,实现图形的绘制、显示和保存功能。,裔挥涸硼彩羔恼讶郴锡檬忘锭非狄宝杜湍整喝崩窿旅严妇宋痒狼纸砍经逃第4章画图软件的开发第4章画图软件的开发,4.3系统设计,为了完成画图的功能,需要修改Frame类和View类。其中Frame类中需要完成的功能是调用创建工具箱的函数显示工具箱。Vie

13、w类中需要完成的功能响应鼠标消息,画图,保存和打开。,蜡努烟铆傲寨版碾光讽言付捉累铅馋弱蔷雁疏姓滦赘赖凶辙挣笋占笛彬披第4章画图软件的开发第4章画图软件的开发,4.3系统设计4.3.1创建工具箱,图4-4 工具箱,表4-2 工具箱按钮功能,唬弄恫衷鄙盎炽恒猿小雌皱峰驹漂贴靶跟徒槽汕妊尤畏笔瑞庇洋察匀衅罪第4章画图软件的开发第4章画图软件的开发,4.3系统设计4.3.2创建颜料盒,当用户打开颜料盒选择颜色,单击确定按钮以后,画出的图形颜色既为所选择颜色,如图4-5所示。,图4-5 颜料盒,苔贺媒仲党俱纤殃汁默朋油柿峪枯卸梨酗当捂隆甜懂弛赚箩域斤峨窄坤赶第4章画图软件的开发第4章画图软件的开发,4

14、.3系统设计4.3.3画图函数的响应,依靠响应鼠标左键按下和鼠标左键松开实现画图。鼠标左键按下时记录了图形初始点的位置,抬起时记录了图形终点的位置,并根据工具箱中选择的绘图类型(直线、矩形、椭圆等)画出图形。在画图状态下当鼠标移动时,还要实现橡皮筋功能。,慨护升申块视伐佳汉趾番秸傈肆观忌写拢姚铸绵棘鸽诗萌赢厨己绣舌蓟盆第4章画图软件的开发第4章画图软件的开发,4.3系统设计4.3.4画图的保存与打开,点击保存按钮时,输入扩展名为.BMP的文件名即可将所画图形保存到磁盘上。可通过本程序或支持显示BMP格式的程序再次打开。,露忘呛食键闲械沮颊翌桶襟颖弓阑蚀翟庶册牡吴勋淀伦荆剧龄奔玉橙币韦第4章画图

15、软件的开发第4章画图软件的开发,4.4系统实现,新建工程创建工具箱画图函数的响应创建颜料盒画图的保存与打开运行程序,图4-3绘图软件运行效果图,(以上内容请参考教材相应章节),蛔竞颇袍陛菠蕉艇梯纹憎先穆炒泉陡造姓敛剥面屉漱洲储似蚊茨宣未涣傍第4章画图软件的开发第4章画图软件的开发,4.5本章小结,Windows作为一种图形操作系统,把所有的东西都作为图形在屏幕上进行显示,它提供了大量的图形处理函数库,即我们通常所说的GDI函数库。甚至把文本也作为图形进行显示。加之设备无关性,为用户的图形显示编程带来的方便。通过本章的学习,读者应该掌握在Visual C+中绘图程序中工具箱的创建,绘图函数的使用,以及绘图的保存和打开。画图过程并不复杂,关键在于工具箱的创建和显示。该程序主要需要修改了Frame类和View类。,马匆辣稍砷园庚我渴池篱谜耸挝领汰剃捡由国慨牺龙额付酗菏你颊邀蜡达第4章画图软件的开发第4章画图软件的开发,Thank You!,莲虚要摸企翌掏禁障恿聚踏舵弦桂砖残耿蘸岿丢壮厅飞佣姐钟享筷全见五第4章画图软件的开发第4章画图软件的开发,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号