我想在IMAGE上画一条直线,不知道怎么画,在线等待
我想画一条直线,鼠标按下时为起点,随后拖拉鼠标,直到放开鼠标左键,画出直线,直线的两端需要有与直线垂直的短线,用于给物体定位象|——————|的直线 问题点数:20、回复次数:12Top
1 楼hlmsoft(小民)回复于 2002-10-09 15:55:50 得分 0
获得image->picutre->canvas,然后就想怎么画,就怎么画吧Top
2 楼killedkiss(苦修键)回复于 2002-10-09 16:06:33 得分 0
详细点,可以吗
image->canvas???不可以啊???Top
3 楼zahuifan(杂烩饭)回复于 2002-10-09 16:19:11 得分 0
Image1->Canvas->MoveTo(20,100);
Image1->Canvas->MoveTo(120,100);
Top
4 楼liux330(弧线+直线)回复于 2002-10-09 16:28:17 得分 0
Image1->Canvas->MoveTo(20,100);
Image1->Canvas->LineTo(120,100);
Top
5 楼wlz_bj()回复于 2002-10-09 16:40:23 得分 5
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
Image1->Canvas->MoveTo(X,Y);
//纪录X,Y的位置,dx,dy
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Image1->Canvas->LineTo(X,Y);
//根据dx,dy,X,Y,画两条垂直线
}Top
6 楼iec(bcbtovs)回复于 2002-10-09 16:56:25 得分 0
这样的:
Image1->Canvas->Pen->Color=clRed;
Image1->Canvas->LineTo(0,0);
Image1->Canvas->LineTo(100,100);
Top
7 楼wxzcsut(小王)回复于 2002-10-09 17:22:18 得分 0
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
Image1->Canvas->MoveTo(X,Y);
}
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Image1->Canvas->LineTo(X,Y);
}
Top
8 楼killedkiss(苦修键)回复于 2002-10-13 19:15:29 得分 0
wlz_bj()
dx???dy???是多少,有这个参数吗??
立刻给分Top
9 楼whitetiger8(键盘未敲坏,基本功未练成)回复于 2002-10-13 20:29:47 得分 0
image->picutre->canvas->Line(50,50);Top
10 楼flyinger(风往北吹)回复于 2002-10-13 20:56:29 得分 0
我长见识了\1Top
11 楼anetfish(鱼翔浅底)回复于 2002-10-13 21:34:35 得分 10
int xDown,yDown;
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button!=0)return;
xDown=X;
yDown=Y;
}
//-----------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(Button!=0)return;
if(xDown==X&&yDown==Y)return;
Image1->Canvas->MoveTo(xDown,yDown);
Image1->Canvas->LineTo(X,Y);
}
//------------------------------------------------------------------
基本上就是这样,不过没有拖拉效果,但可以在MOUSEMOVE中画Top
12 楼phoex(后羿)回复于 2002-10-13 21:41:32 得分 5
To:killedkiss
dx,dy是你鼠标点击的点的坐标!
Top




