方法一:
// CDrawTest1View 绘制 void CDrawTest1View::OnDraw(CDC* pDC) { CDrawTest1Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 //修改CView类的虚函数OnDraw绘制椭圆 CRect rect; this->GetClientRect(rect); pDC->Ellipse(rect); }
类CRect是对Windows结构RECT的封装,凡是能用RECT结构的地方都可以用CRect代替。
结构RECT表示一个矩形的位置和尺寸,其定义为:
typedef struct tagRECT{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
其中 left、top分别表示矩形左上角顶点的横坐标和纵坐标,right、bottom分别表示矩形右下角顶点的横坐标和纵坐标。由于CRect提供了一些成员函数和重载运算符,使得CRect的操作更加方便。 1.CRect的构造函数 CRect有如下6个构造函数:
CRect( );
CRect( int l, int t, int r, int b );
CRect( const RECT& srcRect );
CRect( LPCRECT lpSrcRect );
CRect( POINT point, SIZE size );
CRect( POINT topLeft, POINT bottomRight );
说明:分别以不同的方式构造CRect对象,参数l,t,r,b分别指定矩形的左边、上边、右边和底边。SrcRect是一个RECT结构的引用。LpSrcRect是一个指向RECT结构的指针。Point指定矩形的左上角顶点的坐标,size指定矩形的长度和宽度。topLeft指定矩形的左上角顶点的坐标,bottomRight指定矩形的右下角顶点的坐标。
// CDrawTest1View 消息处理程序 void CDrawTest1View::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: 在此处添加消息处理程序代码 // 不为绘图消息调用 CView::OnPaint() //从属性里面的事件选项来添加OnPaint()事件 //在本事件中绘图 OnPrepareDC(&dc); OnDraw(&dc); CRect rect; this->GetClientRect(rect); dc.Ellipse(rect); }
专门用于设置屏幕映射、调整的OnDraw的前置函数(也即是在OnDraw前调用)
原文:http://blog.csdn.net/ghevinn/article/details/19029305