想用API函数在ScrollBox上画直线,简单的代码如下:var mPoint:PPoint;tmp:TPoint;tmp.X :=0;tmp.Y:=0;
mPoint:=@tmp;
scrollbox.Color :=clwhite;
movetoex(scrollbox.Handle,0,0,mPoint);
lineto(scrollbox.Handle ,200,300);
lineto(scrollbox.Handle ,300,400);但是就是不见有直线出现,不知是何原因,哪位用过这种方法作图的朋友可否给点建议?立即给分!
期待中......
mPoint:=@tmp;
scrollbox.Color :=clwhite;
movetoex(scrollbox.Handle,0,0,mPoint);
lineto(scrollbox.Handle ,200,300);
lineto(scrollbox.Handle ,300,400);但是就是不见有直线出现,不知是何原因,哪位用过这种方法作图的朋友可否给点建议?立即给分!
期待中......
var
mPoint:PPoint;
tmp:TPoint;
DC: HDC;
begin
tmp.X := 0;
tmp.Y := 0;
mPoint := @tmp;
scrollbox.Color := clwhite;
ScrollBox.Repaint;
DC := GetDC(scrollbox.Handle);
try
movetoex(DC, 0, 0, mPoint);
lineto(DC, 200, 300);
lineto(DC, 300, 400);
finally
DeleteDC(DC);
end;
end;
ReleaseDC(DC);
tmp:TPoint;
DC1,DC2: HDC;begin
tmp.X :=0;tmp.Y:=0;
mPoint:=@tmp;
scrollbox.Repaint ;
MyPanel.Repaint ;
DC1 := GetDC(scrollbox.Handle);
DC2:=GetDC(MyPanel.Handle);
try
movetoex(DC1,0,0,mPoint);
lineto(DC1,20,30);
lineto(DC2,30,40);
finally
ReleaseDC(scrollbox.Handle,DC1);
ReleaseDC(MyPanel.Handle,DC2);
end;
end;
另外还有一点呀
scrollbox.Repaint ;
要去掉,因为这个是ScrollBox重画这里没有必要的
我那里用是因为之前有
scrollbox.Color := clwhite;这一句要重画一下子
不能误人子弟。^_^
从ScrollBox的左上角(0,0)画到Panel的(10,10),结果是在Panel的(0,0)到(10,10)有一条直线,ScrollBox上什么也没有,也不存在Panel把ScrollBox上的线挡住了的问题呀,因为至少从ScrollBox的左上角到Panel的边缘应该有条直线的吧??
楼主真是粗心的可以
scrollbox.Handle是HWND啊,不是HDC啊。怎么可能画的出图来,