最近在做一个画铁路线的程序,我想把画笔的形状改变,它的形状用我选择的图片(铁路图片,bmp格式)来替换,这样再画线的时候,就是选择的图片。我急需大家的帮忙!这是我写的代码,但是就是不能正常显示。希望大家给点提示:不会的帮忙顶一下。
procedure TForm1.Button1Click(Sender: TObject);
var
  Bmpmap:TBitmap;
  myBrush: LOGBRUSH;
begin  Bmpmap := TBitmap.Create;
  try
    Bmpmap.LoadFromFile('C:\bmp\31-1.bmp');
    form1.Canvas.Brush.Bitmap := Bmpmap;
    myBrush.lbStyle := form1.Canvas.Brush.Handle;    form1.Canvas.Pen.Handle := ExtCreatePen(PS_GEOMETRIC , 20, myBrush, 0, nil);
    form1.canvas.MoveTo(100,0);
    form1.canvas.LineTo(100,300);
  finally
    Bmpmap.Free;
  end;
end;
end.

解决方案 »

  1.   

    好久不搞GDI了,具体细节都想不起来了。
      

  2.   

    to gogogo:我相信你一定能想起来的,帮帮忙吧,大哥!
      

  3.   

    1,Canvas.Brush.Bitmap属性用于指定使用位图来添充刷子要画的区域
    2,Canvas.Rectangle(100,0, 105,300);
    3,如果要改变画笔我觉得可以改变鼠标的形状
      

  4.   

    myBrush.lbStyle := form1.Canvas.Brush.Handle;//这个赋值什么意思?    form1.Canvas.Pen.Handle := ExtCreatePen(PS_GEOMETRIC , 20, myBrush, 0, nil);
    感觉这2句有问题,
    你的目的是创建一个刷子,然后Canvas用这个刷子创建一个 Pen
    感觉这个Pen的创建有问题
    提示你Handle属性不要轻易使用,还是找找其他的方法属性,另外近两不要用API,其他的抱歉真的想不起来。
    反正感觉这2句不是多余,就是错了。