- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
交互式绘图软件开发设计
3 CDC绘图工具 1.颜色 Windows中的颜色一般用4个字节表示(0BGR(整数) = R G B 0(字节序) [Intel CPU低位字节在前]),Win32 API中定义了一个专门表示颜色索引值的变量类型COLORREF:(windef.h) typedef DWORD COLORREF; // 0x00bbggrr 和一个由红绿蓝三原色构造颜色值的宏RGB:(wingdi.h) #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))8))|(((DWORD)(BYTE)(b))16))) 其中,r、g、b为字节变量,取值范围为0~255。 * * 其函数说明为: COLORREF RGB( BYTE bRed, // red component of color BYTE bGreen, // green component of color BYTE bBlue // blue component of color ); 例如: COLORREF red, gray; red = RGB(255, 0, 0); gray = RGB(128, 128,128); * * * * 在API中还定义了由COLORREF变量获取各个颜色分量的宏Get?Value:(wingdi.h) #define GetRValue(rgb) (LOBYTE(rgb)) #define GetGValue(rgb) (LOBYTE(((WORD)(rgb)) 8)) #define GetBValue(rgb) (LOBYTE((rgb)16)) 其中: typedef unsigned long ULONG_PTR; typedef ULONG_PTR DWORD_PTR; #define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) 0xff)) 它们对应的函数说明为: BYTE GetRValue(DWORD rgb); // DWORD rgb ~ COLORREF col BYTE GetGValue(DWORD rgb); BYTE GetBValue(DWORD rgb); * * 2)画笔 在Windows中,用笔(PEN)来绘制线状图形。在MFC中,笔的属性和功能由Cpen类提供。笔的创建与使用的步骤如下: a)创建笔类Cpen对象方法 方法一:使用构造函数Cpen: Cpen(int nPenStyle,int nWidth,COLORREF crColor) 其中:nPenStyle为笔的图线种类,如下表 * * * * 符号常量 数值 图线种类名称 PS_SOLD 0 实线 PS_DASH 1 虚线 PS_DOT 2 点线 PS_DASHDOT 3 点划线 PS_DASHDOTDOT 4 双点划线 PS_NULL 5 空笔 PS_INSIDEFRME 6 框内 注意:1~4号笔风格只有在笔宽=0或1时有效,笔宽〉1时总为实心的。 nWidth为笔宽,与映射模式有关,使用默认映射时为像素,若nWidth=0,则不论什么映射模式,笔宽都为一个像素;crColor为笔的颜色值。 例如: Cpen * pGrayPen = new Cpen(PS_SOLID,0,RGB(128,128,128)); Cpen grayPen(PS_SOLID,0,RGB(128,128,128)); * * 方法二:使用CDC成员函数CreatePen: BOOL CreatePen(int nPenStyle,int nWidth,COLORREF crColor); 例如: Cpen grayPen; grayPen.CreatePen(PS_SOLID,0,RGB(128,128,128)); b)将画笔对象选入设备上下文 为了能使用我们所创建的笔对象,必须先将它选入设备上下文,方法如下。 调用CDC的成员函数SelectObject来完成: CPen * SelectObject(CPen *pPen); 返回值为指向原来笔对象的指针(一般将其保存下来,供下次再装入时使用)。例如: pOldPen=pDC- SelectObject(pen); * * 调用CDC的另一个成员函数SelectStockObject将其选入DC,其函数原型为: Virtual CGdiObject * SelectStockObject(int nIndex); 画笔中nIndex含义如下表: 例如: pDC-SelectStockObject(BLACK_PEN); * * 符号常数 数值 笔 BLACK_PEN
您可能关注的文档
- 云台山(英语)介绍.pptx
- 互联网+农业-电子商务.ppt
- 互联网常用概念.pptx
- 互连网络-714008295.ppt
- 互联网营销三原则-小米营销秘籍.pptx
- 五一期间-遵义市客车与火车免票规定:1米以下儿童免票;.ppt
- 五下语文《回顾拓展三》-(一)精品ppt课件.ppt
- 五下语文期末复习第一单元(全面整理).ppt
- 五上品社-1.3杰出的智者-伟大的军事家孙武.ppt
- 五好导学独家制作语文敬业与乐业优秀课件.ppt
- 2024贵阳汽车工业技术学校工作人员招聘考试真题及答案汇总.docx
- 汉服产业供应链整合与优化策略研究报告.docx
- 2024贵阳市白云区职业技术学校工作人员招聘考试真题及答案汇总.docx
- 2024贵阳市华希医药健康职业学校工作人员招聘考试真题及答案汇总.docx
- 2024贵阳市经济贸易中等专业学校工作人员招聘考试真题及答案汇总.docx
- 汉服产业供应链智能制造与协同创新报告.docx
- 2024贵阳市乌当区中等职业学校工作人员招聘考试真题及答案汇总.docx
- 汉服产业供应链智能化升级方案研究报告.docx
- 2024贵阳市新华电脑中等职业学校工作人员招聘考试真题及答案汇总.docx
- 汉服产业供应链智能化升级路径与实施方案报告.docx
文档评论(0)