- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC随笔图形设备接口
VC随笔图形设备接口
常用绘图函数实例:
在2DCAD工程中视图类的OnDraw函数中添加绘图代码
void CMy2DCADView::OnDraw(CDC* pDC){?CMy2DCADDoc* pDoc = GetDocument();?ASSERT_VALID(pDoc);?// TODO: add draw code for native data here?//绘制一个彩色点?pDC-TextOut(20, 20, 点);?pDC-SetPixel(100, 40, RGB(255,0,0));
?//绘制直线?pDC-TextOut(320, 20, 线段);?pDC-MoveTo(400, 40);?pDC-LineTo(500, 40);
?//绘制折线?pDC-TextOut(20, 170, 折线);?POINT polyline[4]={{240,240},{80,120},{240,120},{80,240}};?pDC-Polyline(polyline,4);
?//绘制矩形?pDC-TextOut(320, 170, 矩形);?pDC-Rectangle(390, 110, 600, 230);
?//绘制椭圆?pDC-TextOut(20, 320, 椭圆);?pDC-Ellipse(80, 260, 280, 380);
?//绘制多边形?pDC-TextOut(320, 320, 多边形);?POINT polygon[3]={{380,330},{530,260},{500,360}};?pDC-Polygon(polygon,3);}
?
GDI对象的使用步骤:
在视图类的OnDraw函数中
1、创建GDI对象(可以直接构造,或者用Create函数)
2、用CDC::SelectObject函数将GDI对象选入设备环境(DC)中
3、使用完之后,再用CDC::SelectObject函数将GDI对象选落(即选回来),最后释放GDI对象
画笔示例:
void CTestPenView::OnDraw(CDC* pDC){?CTestPenDoc* pDoc = GetDocument();?ASSERT_VALID(pDoc);?// TODO: add draw code for native data here?int nPenStyle[]=//用一个数组把7种风格保存起来?{??PS_SOLID,??PS_DASH,??PS_DOT,??PS_DASHDOT,??PS_DASHDOTDOT,??PS_NULL,??PS_INSIDEFRAME,?};?//不同风格的画笔?for(int i=0; i7; i++)?{??//第一步:构造一支蓝色的不同风格的画笔;??CPen NewPen1(nPenStyle[i], 1, RGB(0,0,255));??//也可以使用(COLORREF)0x000000FF来替代RGB宏
??//第二步:将新画笔选入设备环境中??CPen *pOldPen = pDC-SelectObject(NewPen1);??//开始画线??pDC-MoveTo(10, 20*i+10);??pDC-LineTo(500, 20*i+10);
??//第三步:使用完毕后,将老画笔选回去,这一步不要忘记了!??pDC-SelectObject(pOldPen);?}}
画刷示例:
void CTestBrushView::OnDraw(CDC* pDC){?CTestBrushDoc* pDoc = GetDocument();?ASSERT_VALID(pDoc);?// TODO: add draw code for native data here?int nBrushPattern[6]=?//阴影线模式画刷的图案索引值?{??HS_BDIAGONAL,??//右下45度对角线??HS_CROSS,???//十字交叉线??HS_DIAGCROSS,??//45度十字交叉线??HS_FDIAGONAL,??//右上45度对角线??HS_HORIZONTAL,??//水平线??HS_VERTICAL,??//垂直线?};
?pDC-TextOut(0, 20, 阴影画刷);?//创建阴影线模式画刷?for(int i=0; i6; i++)?{??//第一步:构造新画刷??CBrush NewBrush1(nBrushPattern[i],RGB(0,0,255));
??//第二步:将新画刷选入设备环境中??CBrus
文档评论(0)