欢迎来到天天文库
浏览记录
ID:19745595
大小:81.50 KB
页数:26页
时间:2018-10-05
《mfc中cdc 绘图》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MFC中的CDC绘图 绘图一般在视图类的(屏幕/打印机)绘图消息响应函数OnDraw中进行,例如:voidCTestView::OnDraw(CDC*/*pDC*/){ CTestDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc); if(!pDoc) return; //TODO:在此处为本机数据添加绘制代码}每次需要重绘窗口时(程序启动/窗口大小改变/全部或部分窗口重现/程序员调用RedrawWindow或UpdateWindow),应用程序框架都会调用该C
2、Wnd的消息响应成员函数(的覆盖)来绘制窗口客户区。在Windows中,绘图一般在视图窗口的客户区进行,使用的是MFC的设备上下文(DC=Device-Context)类CDC中各种绘图函数。在绘图前,必须先得到客户区大小和DC、设置绘图颜色,然后再根据文档数据或用户操作来绘制图形。1几何对象的结构和类为了使用绘图函数,应该先了解绘图所用到的几种表示几何对象的结构和类。这些结构和类分别定义在头文件windef.h和afxwin.h中。1.点1)点结构POINT点数据结构POINT用来表示一点的x、y坐标:typedefstructtagPOINT{ LONGx;
3、 LONGy; }POINT;2)点类CPoint点类CPoint为一个没有基类的独立类,封装了POINT结构,有成员变量x和y,其构造函数有5种:CPoint();CPoint(intinitX,intinitY);CPoint(POINTinitPt);CPoint(SIZEinitSize);CPoint(LPARAMdwPoint);//低字设为x、高字设为yCPoint类还定义了4个平移和设置函数:voidOffset(intxOffset,intyOffset);voidOffset(POINTpoint);voidOffset(SIZEsize);voidSe
4、tPoint(intX,intY);CPoint类还重载了+、-、+=、-=、==、!=等运算符来支持CPoint对象和CPoint、POINT、SIZE对象之间的运算。2.大小1)大小结构SIZE大小(size尺寸)结构SIZE用来表示矩形的宽cx和高cy:typedefstructtagSIZE{ LONGcx; LONGcy;}SIZE;2)大小类CSize大小类CSize也为一个没有基类的独立类,封装了SIZE结构,有成员变量cx和cy,其构造函数也有5种:CSize();CSize(intinitCX,intinitCY);CSize(SIZEinit
5、Size);CSize(POINTinitPt);CSize(DWORDdwSize);//低字设为cx、高字设为cyCSizet类也重载了+、-、+=、-=、==、!=等运算符来支持CSize对象和CSize、POINT、SIZE、RECT对象之间的运算。3.矩形1)矩形结构RECT矩形结构RECT定义了矩形的左上角与右下角的坐标:typedefstructtagRECT{ LONGleft; LONGtop; LONGright; LONGbottom;}RECT;2)矩形类CRect矩形类CRect也为一个没有基类的独立类,封装了RECT结构,有成
6、员变量left、top、right和bottom,其构造函数有6种:CRect();CRect(intl,intt,intr,intb);CRect(constRECT&srcRect);CRect(LPCRECTlpSrcRect);CRect(POINTpoint,SIZEsize);CRect(POINTtopLeft,POINTbottomRight);CRect类重载了=,+、-,+=、-=,==、!=,&、
7、,&=、
8、=等运算符来支持CRect对象和CRect、POINT、SIZE、RECT对象之间的运算。还定义了转换符LPCRECT和LPRECT来自动完成CRec
9、t对象到矩形结构和类指针LPCRECT和LPRECT的转换。CRect类中常用的属性和成员函数有:intWidth()const;intHeight()const;CSizeSize()const;CPoint&TopLeft();CPoint&BottomRight();CPointCenterPoint()const;voidSwapLeftRight();BOOLIsRectEmpty()const;BOOLPtInRect(POINTpoint)const;voidSetRect(i
此文档下载收益归作者所有