"B"; CPen pen(PS_SOLID,3,RGB(0,0,0)); CPen* pb=pDC->SelectObject(&pen); int x=10; int y=10; int height=200; int width=100; POINT p1[]={x,y,x,y+height}; POINT p2[]={x,y,x+width,y,x+width*2,y+y/2,x+width,y+height/2}; POINT p3[]={x+width,y+height/2,x,y+height/2}; POINT p4[4] ={x,y+height,x+width,y+height,x+width*2,y+height*16/17,x+width,y+height/2}; pDC->Polyline(p1,2); pDC->PolyBezier(p2, 4); pDC->Polyline(p3,2); pDC->PolyBezier(p4, 4); pDC->SelectObject(pb);
然后FloodFill
如: CClientDC dc(this);
dc.MoveTo(47,40);
dc.LineTo(50,25);
dc.LineTo(53,40);
dc.LineTo(47,40);
dc.FloodFill(50,30,RGB(0,0,0));
保管能解决!
呵呵
// 绘制X轴箭头
dc.MoveTo(315,275);
dc.LineTo(320,280);
dc.LineTo(315,285);
// 绘制Y轴箭头
dc.MoveTo(10,10);
dc.LineTo(5,15);
dc.MoveTo(10,10);
dc.LineTo(15,15);
要区分是否是用鼠标来画。
如果用来画;
先写一个函数;
如:XDrawArrow(CDC * pDC,CPoint pt1,CPoint pt2)
函数体为:
void XDrawArrow(CDC * pDC,CPoint pt1,CPoint pt2)
{
pDC.MoveTo(pt1);
pDC.LineTo(pt2);
...
//计算箭头上的两个小线段与这条线的夹角
...
}
之后调用这个函数就可以了。
CPen* pb=pDC->SelectObject(&pen);
int x=10;
int y=10;
int height=200;
int width=100;
POINT p1[]={x,y,x,y+height};
POINT p2[]={x,y,x+width,y,x+width*2,y+y/2,x+width,y+height/2};
POINT p3[]={x+width,y+height/2,x,y+height/2};
POINT p4[4] ={x,y+height,x+width,y+height,x+width*2,y+height*16/17,x+width,y+height/2};
pDC->Polyline(p1,2);
pDC->PolyBezier(p2, 4);
pDC->Polyline(p3,2);
pDC->PolyBezier(p4, 4);
pDC->SelectObject(pb);