首页 > 其他 > 详细

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

时间:2014-02-10 16:57:47      阅读:459      评论:0      收藏:0      [点我收藏+]

方法一:

// 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

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

原文:http://blog.csdn.net/ghevinn/article/details/19029305

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!