MFC绘制椭圆的两种简单方法

来源:互联网 发布:淘宝网怎么改评价 编辑:程序博客网 时间:2024/06/05 04:15

方法一:

// 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);}
OnPrepareDC函数功能:
在OnDraw成员函数调用前被框架函数调用用于屏幕显示。或者在OnPrint 成员函数调用前被调用于打印预览。
       专门用于设置屏幕映射、调整的OnDraw的前置函数(也即是在OnDraw前调用)
函数原型:virtual void OnPrepareDC( CDC* pDC, CPrintInfo* pInfo = NULL );
参数解释:
pDC :指向一个用于绘制图像文件的上下文设备。
plnfo:如果OnPrepareDC正被打印或打印预览调用,则指向一个CPrintInfo结构,该结构描述了当前打印作业。m_nCurPage成员指定了将要打印的页面。如果OnPrepareDC正在用于屏幕显示,在该参数为NULL
返回值:无
头文件:afxwin.h
1 0
原创粉丝点击