交互式绘图软件开发设计.pptVIP

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

文档评论(0)

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

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

1亿VIP精品文档

相关文档