刚刚接到的15分~~请帮忙
int start_x,start_y;
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)
{
start_x=X;
start_y=Y;
Canvas-> TextOut(10,40, "移动鼠标到线的终点按住鼠标右键 ");
}
if(Button==mbRight)
Canvas-> LineTo(X,Y);
}
这是一个划线的程序,可是运行时和预想的不一样。
start_x=X;
start_y=Y;
这两句本来是用来定义起点的,可是在运行中发现,无论左键点在哪,然后再点右键,发现起点均是在一个地方,即“移动鼠标到线的终点按住鼠标右键”这句话的最后面。请问这是什么问题呢?该怎么办呢?
[解决办法]
汗~MoveTo()要放在TextOut()后面啊!
你用TextOut()时起点已经改变,要用MoveTo()指回你点的地方
int start_x,start_y;
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(Button==mbLeft)
{
start_x=X;
start_y=Y;
Canvas-> TextOut(10,40, "移动鼠标到线的终点按住鼠标右键 ");
Canvas-> MoveTo(X,Y);
}
if(Button==mbRight)
Canvas-> LineTo(X,Y);
}