我使用PrintForm打印窗体来制作试验报告的打印,窗体为刚好打满A4纸大小。并且使用PaintPicture函数来将Picture控件中的试验曲线输出到窗体上,用来打印带曲线的试验报告。
现在的问题是,试验曲线一般在报告底部,而该报告窗体的高度超出屏幕显示的范围,使用MDI子窗体才可以完全显示,但是超出屏幕部分的Picture控件中的图像,无法打印到窗体上,也就无法输出到打印机,似乎是Windows默认不绘制超出屏幕部分的图像,但是窗体上的文本框没有这个问题,依然可以显示,造成仅仅缺失部分超出屏幕的图像,有哪位大侠可以帮我解决这个问题。如果不试用第三方控件,有什么好的解决办法吗?

解决方案 »

  1.   

    使用:
    printer.print
    printer.line
    printer.circle 等方法打印蚊子及绘图
      

  2.   

    这个简单啊。将输出到窗体上的所有东东用API抓图,再用API函数StretchBlt缩放到刚好A4纸大小,然后打印。
      

  3.   

    支持楼上的。
    或者直接使用API函数编写一个打印模块,调试好尺寸也可以。
      

  4.   

    用纯VB语句也可以实现的,使用Printer对象。
      

  5.   

    1、用Printer对象就无法预览到你打印的内容了
    2、用API直接打印,当窗体超出屏幕范围的时候,窗体上都没有打印上,怎么再输出到打印机呢?
    3、用StretchBlt可以试试,我没试过这个API,理论上这个应该可行
      

  6.   

    用纯VB语句也可以实现的,使用Printer对象。 
      

  7.   

    Private Sub Form_Load()
        Me.AutoRedraw = True '窗体设上这个熟悉就可以了
    End Sub