[工学]第4章vc++图形处理.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图形处理

第4章 GDI及windows绘图 第4章 GDI及Windows绘图 Huang Weitong VC++的图形处理 Windows图形设备接口 窗口内绘图 使用绘图属性 与绘图有关的两个消息 1 Windows图形设备接口 (GDI) 1.1 GDI的基本概念 GDI是与设备无关的图形设备接口 就是操作系统屏蔽了硬件设备的差异 用户编程时无需考虑特殊的硬件设置 提供了函数实现在输出设备上显示图形或文字; 提供了绘图对象: 设备描述表 画刷 - 画笔 字体 位图 调色板 1.2 设备描述表 设备描述表—设备(显示器、打印机等)环境的属性的集合 应用程序通过设备描述表的句柄,建立与设备的联系,实现图形操作。 MFC设备描述表类 MFC封装了Windows提供的不同类型的设备描述表于不同的DC类 基类CDC:定义了设备描述表对象,并且提供在显示器、打印机或Windows用户区上绘图的方法,封装了GDI函数 CPaintDC:CDC的子类,仅在WM_PAINT消息需要响应时才起作用 CClientDC: CDC的子类,与CClientDC对象相关的设备环境是窗口的客户区 CWindowDC: CDC的子类,与该对象相关的设备环境是整个窗口,包括客户区和非客户区,还可访问整个屏幕 2 窗口内绘图 画直线函数 BOOL CDC:LineTo(int X,int Y); 从当前位置向指定坐标点画直线的函数 X和Y为线段的终点坐标 CPoint CDC: MoveTo(int X,int Y); 设置画笔当前位置 X、Y为新位置的坐标 绘图实例 使用前面介绍的绘图函数在屏幕上画直线、矩形等 步骤 用向导AppWizard生成单文档工程TestGraph 编辑视图类CTestGraphView中的OnDraw函数,实现画图功能,代码如下: Void CTestGraphView:: OnDraw(CDC* pDC) { CTestGraphDoc* pDoc=GetDocument(); ASSERT_VALID(pDoc); pDC-MoveTo(20,90); pDC-LineTo(120,90); POINT polyline[]={{70,240},{20,190},{70,190},{20,240}}; pDC- Polyline (polyline, sizeof(polyline)/sizeof(POINT)); pDC- Rectangle(210,300,310,360); pDC- Ellipse (210,200,310,260); } 运行程序 注意绘图坐标轴方向缺省值 3 使用绘图属性 3.1 画笔 画笔的操作 创建画笔 将画笔选入设备环境 恢复原有画笔 画笔的创建 用类CPen的CreatePen方法 BOOL CreatePen ( int nPenStyle, //确定画笔样式 int nWidth, //画笔宽度 COLORREF rgbColor //画笔颜色 ); 创建画笔后,必须调用SelectObject函数将其选入设备环境。 pOldPen=pDC-SelectObject(pen); 调用绘图函数画图 恢复原有画笔 pDC-SelectObject(pOldPen); 颜色的设置 Windows使用宏RGB定义绘图的颜色,其形式为: RGB(nRed,nGreen,nBlue) 画笔实例 Void CPenTestView:: OnDraw(CDC* pDC) { CTestGraphDoc* pDoc=GetDocument(); ASSERT_VALID(pDoc); CPen pNewPen, * pOldPen; if(pNewPen.CreatePen(PS_DASH,1,RGB(0,0,0))) { pOldPen=pDC-SelectObject( pNewPen); pDC-MoveTo(20,90); pDC-LineTo(120,90); pDC-SelectObject(pOldPen); } else { AfxMessageBox(“不能创建笔!”); return; } CPen pNewPen2; if(pNewPen2.CreatePen(PS_SOLID,10,RGB(0,0,0))) { pOldPen=pDC-SelectObject( pNewPen2); pDC-Ellipse(230,70,310,1

文档评论(0)

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

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

1亿VIP精品文档

相关文档