您的位置:程序门 -> delphi -> windows sdk/api



急!求用api函数画斜线的代码!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


急!求用api函数画斜线的代码![已结贴,结贴人:sifu_he]
发表于:2007-05-12 16:13:20 楼主
我的程序上有个控件是没有canvas对象的
但是我想在其上面画一条斜线。。。
求代码!
最好是实现到鼠标在上面移动就有一条线跟着走。。。
谢谢!!
发表于:2007-05-13 15:27:591楼 得分:100
var
    dc   :   hdc;

procedure   tform1.button1mousemove(sender:   tobject;   shift:   tshiftstate;   x,
    y:   integer);
begin
    lineto(dc,   x,   y);
end;

procedure   tform1.formshow(sender:   tobject);
begin
    dc   :=   getdc(button1.handle);
end;
发表于:2007-05-13 15:57:132楼 得分:0
鼠标移动就有一条线在上面跟着走......


var
    dc   :   hdc;

procedure   tform1.button1mousemove(sender:   tobject;   shift:   tshiftstate;   x,
    y:   integer);
begin
    button1.refresh;//简单地使用refresh吧
    movetoex(dc,   0,   0,   nil);
    lineto(dc,   x,   y);
end;

procedure   tform1.formshow(sender:   tobject);
begin
    dc   :=   getdc(button1.handle);
end;
发表于:2007-05-14 09:00:483楼 得分:0
to   lihuasoft(坐井观天)
能用其他方法代替button1.refresh吗?最好是释放了line的对象。而且我还想把线的样式设置为虚线呢?请问方法是什么呢??在线等。。。解决了再加分!
发表于:2007-05-14 12:45:574楼 得分:0
这个,   好象可以用setrop2函数,   把原先的线画掉.   例如这样:

var
    dc   :   hdc;
    xold,   yold   :   integer;

procedure   tform1.button1mousemove(sender:   tobject;   shift:   tshiftstate;   x,
    y:   integer);
begin
    movetoex(dc,   0,   0,   nil);
    lineto(dc,   xold,   yold);
    movetoex(dc,   0,   0,   nil);
    lineto(dc,   x,   y);
    xold   :=   x;
    yold   :=   y;
end;

procedure   tform1.formshow(sender:   tobject);
begin
    dc   :=   getdc(button1.handle);
    setrop2(dc,   r2_not);
end;


但效果并不是很好.   设置penstyle是虚线的api函数,   我没找到.     既然已结贴,你就另开贴问别人吧.  

sorry


快速检索

最新资讯
热门点击