如何在panel上实现位图的复制
我想在panel 上实现位图的复制,
我光找到form上的onpiant的方法,可panel上没有,我该如何解决。 

解决方案 »

  1.   

    在Panel上无法实现位图的复制,因为它不是继承自GraphicsControl,没有Canvas(画布)属性
      

  2.   

    用getdc函数获得Panel的DC
    再用Bitblt
      

  3.   

    强行绘制?????????
    在你的 form OnPaint 里看看这个
    var
    ACanvas:TControlCanvas;
    begin
      ACanvas:=TControlCanvas.Create;
    try
      ACanvas.handle:=GetDC(Panel1.handle);
      with ACanvas do
      begin
      ////在这里绘制操作
         
      end;
       ReleaseDC(ACanvas.handle,Panel.handle);
      finally
       ACanvas.free;
      end;
    end;
      

  4.   

    不过建议你还是自己写一个支持BMP的PANEL吧...从TCustomPanel 或者 TCustomControl都可以.......去找一下 类似的Panel的代码一看就知道了。.....太多..现写很麻烦
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      aCanvas:TCanvas;
    begin
      aCanvas:=TCanvas.Create ;
      aCanvas.Handle  :=GetDC(Panel1.Handle);
      aCanvas.TextOut(0,0,'asdfasdf');
      aCanvas.Free ;
    end;
      

  6.   

    有那么麻烦吗?丢一个PaintBox到Panel上,align设为client,什么问题都解决了!