|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
void CE6View::OnDraw(CDC* pDC)
{
CE6Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
int num=pDoc->graphnum;
for(int i=0;i<num;i++)
{
switch(pDoc->data[num].type)
{
case 0: //画直线
pDC->MoveTo(pDoc->data[num].begin);
pDC->LineTo(pDoc->data[num].end);
break;
case 1: //画椭圆
int x,y,r;
x = (pDoc->data[num].begin.x + pDoc->data[num].end.x)/2;
y = (pDoc->data[num].begin.y + pDoc->data[num].end.y)/2; //计算圆心
r = ((int)sqrt(pow(pDoc->data[num].begin.x-pDoc->data[num].end.x,2)
+ pow(pDoc->data[num].begin.y-pDoc- >data[num].end.y,2)))/2; //计算半径
pDC->Ellipse(x-r,y-r,x+r,y+r);
break;
case 2: //画矩形
pDC->Rectangle(pDoc->data[num].begin.x,
pDoc->data[num].begin.y,
pDoc->data[num].end.x,
pDoc->data[num].end.y);
break;
}
}
}
这段代码为什么画第二个图形的时候会覆盖前一个图形?画刷的问题吗?还是数组的问题? |
|