在一个activex中,我只想打印出其中一个panel中的内容(里面有sharp,lable,image等),如何做到呢?

解决方案 »

  1.   

    Panel.PaintTo(Printer.Canvas,0,0);  
      如果要自动适应打印纸,要改变   Printer.Canvas.Handle   的坐标映射方式,详细清参考Window   API   SetMapMode()  
      你一个例子:  
       
          SetMapMode(pb.Canvas.Handle,MM_ANISOTROPIC);  
          SetWindowExtEx(pb.Canvas.Handle,Panel1.Width,Panel1.Height,nil);  
          SetViewportExtEx(pb.Canvas.Handle,pb.Width,pb.Height,nil);  
          Panel1.PaintTo(pb.Canvas,0,0);  
       
      这里用pb:   TPaintBox代替打印机