- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
3.5用VisualC++生成根本图形;所有GDI对象类的抽象基类都是CGdiObject,而所有实际使用的GDI对象那么是从CGdiObject派生出来的,以下是GDI对象类的列表:
nCFont—字体,它是一种具有某种风格和尺寸的所有字符的完整集合,常常被当作资源存于磁盘中,其中有一些还要依赖某种设备。
nCPen—画笔,它是用来画线和绘制有形边框的。具体使用时,可以指定其颜色和宽度,也可以指定其线型,例如:实线、虚线或点线。
nCBrush—画刷,通过定义一种位图矩阵,用它可以对区域内部进行填充。;nCRgn—区域,它是由多边形、椭圆或者二者组合形成的一种范围,可以利用它来进行填充、裁剪以及鼠标点中测试。
n??CBitmap—位图,它是一种位图矩阵,每一个显示像素都对应于其中的一个或多个位。位图可以用来表示图像,也可以用来创立刷子。
nCPalette—调色板,它是一种颜色映射接口,允许一个应用程序在不干扰其他应用程序的前提下,充分利用输出设备的颜色绘制能力。注意:调色板一般只在颜色数为256种或更少的情况下才使用。
;3.5.2VC++绘图方法;绘图工具选择函数;宏代码
;1.可以先构造画笔对象,然后用函数CreatePen初始化。
函数原型为:BOOLCreatePen(intnPenStyle,intnWidth,COLORREFcrColor);
其中,nPenStyle:画笔风格,其值如表3-2。nWidth:画笔的宽度(逻辑单位),crColor:画笔的颜色。;画笔风格
;画刷风格:实心,网格,模式,空四种风格
除空画刷,其余画刷先构造,再按下面方法之一初始化:
(1)纯色填充图形的内部。函数原型为:
BOOLCreateSolidBrush(COLORREFcrColor);//crColor画刷颜色
(2)影线模式来填充图形的内部。函数原型为
BOOLCreateHatchBrush(intnIndex,COLORREFcrColor);
其中,参数nIndex用于指定影线模式,其值如表3-3。;阴影模式
;(3)图案模式来填充图形的内部。函数原型为:
BOOLCreatePatternBrush(CBitmap*pBitmap);
其中,参数pBitmap是指向位图对象的指针。当用画刷填充图形时,图形内部将用位图一个接一个地填充。
初始化完画刷对象之后,就可以调用CDC的成员函数SelectObject将画刷选入设备文本对象。对于画刷,SelectObject的原型为:
CBrush*SelectObject(CBrush*pBrush);
其中,参数pBrush是指向画??对象的指针。SelectObject返回一个指向原先已选入设备文本对象的画刷对象的指针。如果在此之前没有选择过画刷对象,那么使用缺省画刷。;使用VisualC++在Windows下进行图形程序设计的根本步骤是:
〔1〕在绘制之前,创立绘图工具并设置相关的颜色、线型、线宽等属性;
〔2〕调用相关的绘图函数选择绘图工具并进行绘图;
〔3〕在绘制之后,恢复原有的绘图工具。
例〔画笔,画刷的使用 〕:
CBrushbrush;
brush.CreateHatchBrush(HS_BDIAGONAL,RGB(255,0,0));
CBrush*pOldBrush;
CPen*pOldPen;
pOldBrush=(CBrush*)pDC-SelectObject(brush);
pOldPen=(CPen*)pDC-SelectStockObject(NULL_PEN);
pDC-Ellipse(CRect(50,50,250,250));
pDC-SelectObject(pOldBrush);
pDC-SelectObject(pOldPen);;坐标系统设置和转换函数
;映射模式
映射模式用于定义逻辑坐标的单位与设备坐标间的关系。在缺省的映射模式下,逻辑坐标与设备坐标相同,坐标原点也在窗口左上角,以像素为单位,横坐标随光标向右移动而增加,纵坐标随光标向下移动而增加。
Windows包含八种不同的映射模式(见表3-4),每种映射模式在应用程序中都有特定的用途。;映射模式
;设置映射模式:
函数原型为
virtualintSetMapMode(intnMapMode);
参数nMapMode为前面列出的八种映射模式之一。;设备坐标转换为逻辑坐标,函数原型为:
voidDPtoLP(LPPOINTlpPoints,intnCount=1);
voidDPtoLP(LPRECTlpRec
您可能关注的文档
最近下载
- 第十七章外阴色素减退性疾病.ppt VIP
- 考研真题 三峡大学水利与环境学院820数据库原理与应用历年考研真题汇编.docx VIP
- 中石化油品储运鉴定试题库——初 级 工.pdf VIP
- 探测器安装工程检验批质量验收记录表.docx VIP
- 2025上海松江区工作者招聘76人考试备考题库及答案解析.docx VIP
- 中国全面发育迟缓诊断指南2024解读PPT课件.pptx VIP
- 2020年国考公务员考试《行测》真题及答案(地市级).pdf VIP
- 试算法计算调洪演算程序.xls VIP
- 小学英语教学中分层次教学的实践探讨教学研究课题报告.docx
- 智能化弱电系统培训资料,大量系统图与实例图.pdf VIP
文档评论(0)