- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图形设备接口-画笔与画刷
图形与图像编程基础 本章主要学习内容: 图形处理的基本原理: 图形设备接口 设备环境 GDI坐标系 映射模式 使用画笔和画刷绘制图形 文本与字体 位图、图标和光标 6.3 绘制基本图形 Windows中的基本图形包括点、直线、圆、圆弧、矩形、椭圆等。MFC把绘制这些图形的函数封装在CDC类中。 绘图通常编写C*View类的OnDraw(CDC *pDC)函数,其中参数pDC指当前设备环境指针。 补充:橡皮筋技术(利用SetROP2函数) 先了解SetROP2函数的两个参数R2_NOT与R2_NOTXORPEN的使用效果,以下为该两种绘画模式举例: R2_NOTXORPEN绘画模式你用红色画笔在黑色背景上画一条直线,显示红色,但你再用这只笔在刚画的直线上重画一遍,就相当于把开始画的红线擦除掉了,划线的地方显示为背景色。 R2_NOT绘画模式同样有在同一个地方画两次相当于什么都没画的功能,不过R2_NOT绘画模式第一次画的时候显示颜色并不是你选定的画笔颜色,而是默认的颜色。 颜色 颜色 颜色和颜色对话框 输出文本与画点 //设置文本的前景色 pDC-SetTextColor(RGB(255,0,255)); //输出文本 pDC-TextOut(20,20,Point); //以不同的颜色画点 pDC-SetPixel(100,20,RGB(255,0,0)); pDC-SetPixel(110,20,RGB(0,255,0)); pDC-SetPixel(120,20,RGB(0,0,255)); 画直线、矩形与椭圆 //画直线 pDC-MoveTo(20,90); pDC-LineTo(160,90); pDC-LineTo(130,80); //直角矩形 pDC-Rectangle(190,270,250,310); //圆角矩形 pDC-RoundRect(265,270,330,310,30,20); //椭圆 pDC-Ellipse(200,160,280,200); 6.4 画笔和画刷 6.4.1 画笔 6.4.2 画刷 6.4.3 画笔和画刷的应用程序举例 6.4.1 画笔 1. 创建画笔 CPen类封装图形设备接口GDI画笔对象的功能。创建画笔可以采用以下几种方法: (1)使用无参构造函数声明对象,之后调用成员函数CreatePen()创建具体的画笔。 BOOL CreatePen(int nPenStyle, int nWidth, COLORREF crColor); 其中nPenStyle表示画笔的样式。nWidth表示画笔的线宽。crColor表示画笔的RGB颜色。 例如: CPen Pen; Pen.CreatePen(PS_SOLID,1,RGB(255,0,0); //调用成员函数,创建线宽为1的红色实线画笔 1. 创建画笔 (2) 使用构造函数创建画笔 CPen(int nPenStyle,int nWidth,COLORREF cfColor) 例如: CPen Pen(PS_SOLID,1,RGB(255,0,0); // 调用构造函数,创建线宽为1的红色实线画笔 2. 库存画笔 库存画笔又叫堆画笔。Windows定义了三种库存画笔,程序员可以直接使用这些画笔,而不用创建对象。三种库存画笔分别是: BLANK_PEN:黑色画笔;WHILE_PEN:白色画笔; NULL_PEN:空画笔。 可以使用CPen::CreatestockObject()函数进行创建。 CPen Pen; Pen.CreatestockObject(WHILE_PEN); 可以以库存画笔为参数来调用SelectStockObject()函数,此函数选定放入当前设备环境的新对象,并返回一个指向被替换对象的指针, CPen *pOldPen=pDC-SelectStockObject(BLANK_PEN); 3. 画笔的使用方法 (1) 创建画笔; (2) 使用新的画笔,保存原来的画笔以便恢复; CPen *pOldPen; pOldPen=pDC-selectObject(penRed); (3) 使用新画笔作图; (4) 恢复原来的画笔 pDC-selectObject(pOldPen); 保存并恢复原来画笔的原因是每个图形设备接口对象要占用一个HDC句柄,而可用的句柄数量有限,如果用完后未及时释放,积累下去将导致严重的运行错误。 例:画笔的使用 CPen *pNewPen=new CPen; if(pNewPen-CreatePen(PS_DASHDOT,3,RGB(255,0,0))) { CPen *pOldPen=pDC-SelectObject(pNewP
您可能关注的文档
- 国小六年—.ppt
- 国庆62周年主题班会.ppt
- 国庆主题班会5.ppt
- 国庆促销活动指导手册 ppt素材.ppt
- 国庆促销活动指导手册素材.ppt
- 国庆促销素材.ppt
- 国庆节、中秋节祝福.ppt
- 国窖1573冰饮风尚执行方案.ppt
- 国立屏东科技大学2005-2008教育施政主轴执行计画.ppt
- 国际代工策略联盟与并购.ppt
- 初中道德与法治八年级上册:遵守规则复习.pptx
- 第43讲 重点实验:测量电源的电动势和内阻(练习)(原卷版)-2025年高考物理一轮复习讲练测(新教材新高考).docx
- 初中英语外研社版八年级上册:Module 9 Population Unit 1-教学课件.pptx
- 急危重症护理学实践与学习指导(第五版)题库(四)有答案.docx
- 2024试用期解除劳动合同工资什么时候发.docx
- 2024-2025学年初中科学六年级下册牛津上海版(2024)教学设计合集.docx
- 2024-2025学年初中化学九年级下册科粤版(2024)教学设计合集.docx
- 帕金森病伴抑郁的诊治分析.pptx
- 初中英语外研社版八年级上册:Module 9 Population Unit 2 Reading and vocabulary-教学课件.pptx
- 2024财产租赁合同.docx
文档评论(0)