第4章vc++图形处理3.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章vc图形处理3

* 缺省的映射模式 将窗口中的对称图形映射到视口时仍为对称图形 按照窗口和视口的坐标比例进行映射 * 映像模式的设置 根据需要设置映像模式 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绘图 * Huang Weitong * 第4章 GDI及windows绘图 第4章 GDI及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) (X3,Y3)

文档评论(0)

peili2018 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档