- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC第部分图形处理
第 8 章
; Windows是一个图形操作系统,其所有的图形可视效果都是通过绘制操作而完成的。图形显示的实质就是利用Windows提供的图形设备接口将图形绘制在显示器上。大多数应用程序都需要在客户区绘制一些图形,如绘制文本、几何图形、位图和光标等。
前面几章已经涉及到有关图形处理的内容,只是使用了Windows系统默认的图形设备接口和设备环境,绘制的图形没有颜色、线型和字体的变化。;本章主要学习内容:
图形处理的基本原理:
图形设备接口
设备环境
GDI坐标系
映射模式
使用画笔和画刷绘制图形
文本与字体
位图、图标和光标;8.1 图形设备接口;图形设备接口GDI管理Windows应用程序图形的绘制,在应用程序中,通过调用GDI函数绘制不同尺寸、颜色、风格的几何图形、文本和位图。这些图形处理函数组成了图形设备接口GDI。
GDI是形成Windows核心的三种动态链接库之一,MFC将GDI函数封装在一个名为CDC的设备环境类中,因此我们可以通过调用CDC类的成员函数来完成绘图操作。
所谓设备无关性,是指操作系统屏蔽了硬件设备的差异,使用户编程时一般无需考虑设备的类型,如不同种类的显示器或打印机。 ;Windows绘图过程和设备无关性的实现:;8.1.2 设备环境;设备环境中的“设备”是指任何类型的显示器或打印机等输出设备,绘图时用户不用关心所使用设备的编程原理和方法。所有的绘制操作必须通过设备环境进行间接的处理,Windows自动将设备环境所描述的结构映射到相应的物理设备上。
从根本上来说,设备环境DC是一个Windows数据结构,该结构存储着程序向设备输出时所需要的信息,应用程序利用它定义图形对象及其属性,并实现应用程序、设备驱动程序和输出设备之间绘图命令的转换。
在Windows中不使用DC无法进行输出,在使用任何GDI绘图函数之前,必须建立一个设备环境。;获取设备环境DC的方法: ;如果采用MFC方法编程,MFC提供了不同类型的DC类,每一个类都封装了DC句柄,并且它们的构造函数自动调用获取DC的API函数,析构函数自动调用释放DC的API函数。因此,在程序中通过声明一个MFC设备环境类的对象就自动获取了一个DC,而当该对象被销毁时就自动释放了获取的DC。MFC AppWizard应用程序向导创建的OnDraw()函数自动支持所获取的DC。
MFC的DC类包括CDC、CPaintDC、CClientDC、CWindowDC和CMetaFileDC等,其中CDC类是MFC设备环境类的基类,其它的MFC设备环境类都是CDC的派生类。 ;CDC类既作为其它MFC设备环境类的基类,又可以作为一个一般的设备环境类使用。利用它可以访问设备属性和设置绘图属性。CDC类对GDI的所有绘图函数进行了封装。
CPaintDC类是OnPaint()函数使用的设备环境类,它代表一个窗口的绘图画面。如果添加WM_PAINT消息处理函数OnPaint(),就需要使用CPaintDC类来定义一个设备环境对象。
CClientDC类代表了客户区设备环境。当在客户区实时绘图时,需要利用CClientDC类定义一个客户区设备环境。
CWindowDC类代表了整个程序窗口设备环境,可以在整个窗口区域绘图。 ;8.1.3 GDI坐标系和映射模式 ;设备坐标系分为屏幕坐标系、窗口坐标系和客户区坐标系三种相互独立的坐标系。
屏幕坐标系以屏幕左上角为原点,一些与整个屏幕有关的函数均采用屏幕坐标,如GetCursorPos()、SetCursorPos()、CreateWindow()、MoveWindow()。弹出式菜单使用的也是屏幕坐标。
窗口坐标系以窗口左上角为坐标原点,它包括窗口标题栏、菜单栏和工具栏等范围。
客户区坐标系以窗口客户区左上角为原点,主要用于客户区的绘图输出和窗口消息的处理。鼠标消息的坐标参数使用客户区坐标,CDC类绘图成员函数使用与客户区坐标对应的逻辑坐标。;坐标之间的相互转换;例 修改例5-13中的程序MyDraw,采用将设备坐标转换为逻辑坐标的方法实现滚动视图的功能。 ;void CMyDrawView::OnLButtonDown(
UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here . . . CClientDC dc(this);
OnPrepareDC(dc); // 调整设备环境的属性
dc.DPtoLP(point); // 将设备坐标转换为逻辑坐标
SetCapture(); // 捕捉鼠标
::SetCurso
您可能关注的文档
- sgg教案.ppt
- Sealmark发展筹备V.ppt
- Session线性筹备扩展.ppt
- shiyong高中必修二第五章人类遗传病教案新人教[原创]人教版.ppt
- Simulink第三部分运行仿真.ppt
- simulink动态系统建模仿真第8部分.ppt
- SIRS以及MODS诊治进展.ppt
- SmartairST以及无创通气.ppt
- SoidWorks基础教程教案.ppt
- spass教案,教程,第四章_方差分析.ppt
- 中国鳞片石墨市场竞争格局及未来发展战略规划研究报告.docx
- 领先新能源汽车行业市场发展现状及行业前景深度研究文献.docx
- 2025-2030中国电磁炉行业农村市场拓展瓶颈与突破路径探讨.docx
- 金属冶炼行业市场现状供需分析及经济评估规划研究报告.docx
- 2025至2030全球及中国步进电机控制器行业细分市场及应用领域与趋势展望研究报告.docx
- 中国防紫外线纤维行业市场深度分析及发展预测与投资策略研究报告.docx
- 木制家具行业市场供需分析及投资评估规划分析研究报告.docx
- 2025-2030全球基因编辑技术伦理争议与商业化应用前景报告.docx
- 能源行业市场竞争态势与未来发展趋势深度研究报告.docx
- 冷却系统行业供需关系演化分析及融资配置探讨.docx
最近下载
- 2022二级建造师管理章节练习3.31.docx VIP
- 高中生物实验中生态瓶制作与观察的实验课题报告教学研究课题报告.docx
- 广东省装配式建筑评价标准DBJT15-163-2019.pdf VIP
- 分级护理团体标准解读.pptx VIP
- 2025年1月江苏自考《03954现代公文写作》考前押题密训复习资料.pdf
- T_FJLY 001-2022_自然教育基地质量评定.pdf VIP
- 第八单元+中华民族的抗日战争和人民解放战争+知识点总结 高一上学期统编版(2019)必修中外历史纲要上.docx VIP
- 2025年房地产经纪人房地产经纪门店选址与区域市场特点分析专题试卷及解析.pdf VIP
- 米家米家无雾加湿器3 「800」使用说明书.pdf
- 超市联营商家管理制度优质文档.doc VIP
原创力文档


文档评论(0)