下面是一个可以拖动圆,矩形和直线的代码,但是却只能拖动圆和矩形,直线动不了,大家能帮我改改吗?如果想要全部代码,可加我QQ7429871,多谢赐教!!//直线类
class Line : public Point
{
protected:
int xend;
int yend;
public:
Line(int ,int ,int ,int);
virtual void show(CDC&);
virtual void hide(CDC&);
int getxend(){return xend;}
int getyend(){return yend;}
};//void Line::hide(CDC& dc)
{
visible=false;
CPen MyPen(PS_SOLID,1,RGB(255,255,255));
CPen *OldPen;
OldPen=dc.SelectObject(&MyPen);
dc.LineTo(xend,yend);
dc.SelectObject(OldPen);
}void Line::show(CDC& dc)
{
visible=true;
dc.LineTo(xend,yend);
}但是现在的问题是用鼠标拖动不了。我的拖动的那部分是,在ONDRAW里//现在就是剩下直线拖不了了,谁能帮帮我?
CRect r1(aCircle.getx()-aCircle.getradius(),
aCircle.gety()-aCircle.getradius( ),
aCircle.getx()+aCircle.getradius( ),
aCircle.gety()+aCircle.getradius( ));
CRect r2(aRec.getx(),aRec.gety( ),aRec.getx()+aRec.getwidth( ),aRec.gety()+aRec.getheight( ) );
CRect r3(aLine.getx(),aLine.gety(),aLine.getxend(),aLine.getyend());
if (InRect(point,r1)) //若鼠标在圆上单击
anyfigures=&aCircle;
//anyfigures被赋值为圆对象,将要拖动圆
else
if (InRect(point,r2))
anyfigures=&aRec; //将要拖动矩形
else
if (InRect(point,r3))
anyfigures=&aLine;
else
anyfigures=0;//不拖任何图形
class Line : public Point
{
protected:
int xend;
int yend;
public:
Line(int ,int ,int ,int);
virtual void show(CDC&);
virtual void hide(CDC&);
int getxend(){return xend;}
int getyend(){return yend;}
};//void Line::hide(CDC& dc)
{
visible=false;
CPen MyPen(PS_SOLID,1,RGB(255,255,255));
CPen *OldPen;
OldPen=dc.SelectObject(&MyPen);
dc.LineTo(xend,yend);
dc.SelectObject(OldPen);
}void Line::show(CDC& dc)
{
visible=true;
dc.LineTo(xend,yend);
}但是现在的问题是用鼠标拖动不了。我的拖动的那部分是,在ONDRAW里//现在就是剩下直线拖不了了,谁能帮帮我?
CRect r1(aCircle.getx()-aCircle.getradius(),
aCircle.gety()-aCircle.getradius( ),
aCircle.getx()+aCircle.getradius( ),
aCircle.gety()+aCircle.getradius( ));
CRect r2(aRec.getx(),aRec.gety( ),aRec.getx()+aRec.getwidth( ),aRec.gety()+aRec.getheight( ) );
CRect r3(aLine.getx(),aLine.gety(),aLine.getxend(),aLine.getyend());
if (InRect(point,r1)) //若鼠标在圆上单击
anyfigures=&aCircle;
//anyfigures被赋值为圆对象,将要拖动圆
else
if (InRect(point,r2))
anyfigures=&aRec; //将要拖动矩形
else
if (InRect(point,r3))
anyfigures=&aLine;
else
anyfigures=0;//不拖任何图形
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货