网站大量收购闲置独家精品文档,联系QQ:2885784924

第4章vc++图形处理精品.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章vc图形处理精品

坐标系统 逻辑坐标系统 设备坐标系统:以象素点为单位 屏幕——整个屏幕坐标区为坐标系统 窗口——应用程序的窗口为坐标区(含边界) 用户区——窗口中的工作区为坐标系统 缺省的映射模式 将窗口中的对称图形映射到视口时仍为对称图形 按照窗口和视口的坐标比例进行映射 映像模式的设置 根据需要设置映像模式 Pdc-SetMapMode(MM_TEXT); 视口和窗口的原点坐标 缺省值均为(0,0) 可调用函数SetWindowOrgEx设定窗口原点。 可调用函数SetViewportOrgEx设定视口原点。 只有在映射模式为MM_ANISOTROPIC 和MM_ISOTROPIC时才有意义 坐标系使用原则: 大多数CDC成员函数如绘图函数以逻辑坐标为参数 CWnd的成员函数以设备坐标为参数 从鼠标消息如WM_LBUTTONDOWN获得的鼠标位置都是设备坐标 坐标转换函数: LPToDP:逻辑坐标------设备坐标 DPToLP:设备坐标-------逻辑坐标 3.4.图形刷新 出现如下情况时,系统发送WM_PAINT消息: 窗口大小的调整; 窗口移动; 被覆盖后的恢复。 应用程序收到该消息时要调用OnPaint()完成窗口的重绘 有时,没有上述窗口的大小改变也需要重绘窗口,如用户希望窗口中的数据添加一些内容,这时需要调用CWnd的成员函数: (1)void Invalidate(BOOL bErase=TRUE) 作用:使整个客户区无效,由此引发WM_PAINT消息 bErase=TRUE时更新区的背景被擦除,否则,更新区的背景保持不变 (2)void InvalidateRect(LPCRECT lpRect, BOOL bErase=TRUE) 作用:使客户区一个矩形区域无效,由此引发WM_PAINT消息 WM_PAINT消息的级别非常低,窗口可能先收到其它消息,此时,为提高WM_PAINT消息的优先级,调用CWnd:UpdateWindow()函数。 例如程序中调用了Invalidate函数请求窗口重绘,而且还希望立即在刷新了的窗口中输出内容,这时需要强行得到一个绘图消息,代码如下: InvalidateRect(rect,TRUE); UpdateWindow(); 第4章 GDI及Windows绘图 * Huang Weitong * 第4章 GDI及Windows绘图 * Huang Weitong * 第4章 GDI及Windows绘图 * Huang Weitong * 第4章 GDI及windows绘图 第4章 GDI及windows绘图 VC++的图形处理 Windows图形设备接口 窗口内绘图 使用绘图属性 与绘图有关的两个消息 1 Windows图形设备接口 (GDI) 1.1 GDI的基本概念 GDI是与设备无关的图形设备接口 就是操作系统屏蔽了硬件设备的差异 用户编程时无需考虑特殊的硬件设置 提供了函数实现在输出设备上显示图形或文字; 提供了绘图对象: 设备描述表 画刷 - 画笔 字体 位图 调色板 设备描述表—设备(显示器、打印机等)环境的属性的集合 应用程序通过设备描述表的句柄,建立与设备的联系,实现图形操作。 MFC设备描述表类 MFC封装了Windows提供的不同类型的设备描述表于不同的DC类 基类CDC:定义了设备描述表对象,并且提供在显示器、打印机或Windows用户区上绘图的方法,封装了GDI函数 CPaintDC:CDC的子类,仅在WM_PAINT消息需要响应时才起作用 CClientDC: CDC的子类,与CClientDC对象相关的设备环境是窗口的客户区 CWindowDC: CDC的子类,与该对象相关的设备环境是整个窗口,包括客户区和非客户区,还可访问整个屏幕 1.2 设备描述表 2 窗口内绘图 画直线函数 BOOL CDC:LineTo(int X,int Y); 从当前位置向指定坐标点画直线的函数 X和Y为线段的终点坐标 CPoint CDC: MoveTo(int X,int Y); 设置画笔当前位置 X、Y为新位置的坐标 例:画直线 pDC-MoveTo(10,10); pDC-LineTo(100,100); 画折线函数 BOOL Polyline ( LPPOINT lpPoints, int nCount) lpPoints是指向折线顶点数组的指针 nCount指定折线顶点数组中顶点数目 (X1,Y1) (X4,Y4)

文档评论(0)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档