我现在想做一个打印功能:
界面上有两个个picture控件,picture1作为容器,在picture2绘制曲线,picture2上还有画上去的网格和标尺。
我在执行打印语句.printer的时候只能打印出曲线,网格和标尺没办法打出来,可是我又不想打印出整个界面,应该怎样设计程序才能只打印出曲线和标尺、网格

解决方案 »

  1.   

    用BitBlt截取picture1,图象大小控制为picture1的大小,然后再打印
     BitBlt Picture1.hdc, 0, 0, picture1.width, picture1.height, hdc, 0, 0, &HCC0020
      

  2.   

    to asftrhgjhkjlkttttttt
    我试了一下出来的结果是沿着界面的左上角开始截取的图片,为什么截取的不是picture1的图片啊
      

  3.   

    看来你不明白参数的含义,这样改一下,看看
    BitBlt Picture1.hdc, picture1.left, picture1.top, picture1.width, picture1.height, hdc, 0, 0, &HCC0020
      

  4.   

    [Quote=引用 3 楼 asftrhgjhkjlkttttttt 的回复:
    看来你不明白参数的含义,这样改一下,看看
    BitBlt Picture1.hdc, picture1.left, picture1.top, picture1.width, picture1.……
    [/Quote]
    这样是不是就把截图加载到picture1上了,
    那我用 Printer.PaintPicture Picure1.Image, 0, 0输出到打印机上,出来的效果是只有曲线没有网格和标尺啊
      

  5.   

    to asftrhgjhkjlkttttttt(孤独剑) 
    这样解出来的图还是界面左上角开始的,只是加载到picture1中位置改变了
      

  6.   

    http://download.csdn.net/source/2368159
      

  7.   

    汗,再解释一下吧
    BitBlt Picture3.hdc, me.left+picture1.left, me.top+picture1.top, picture1.width, picture1.height, hdc, 0, 0, &HCC0020Picture3.hdc 是要把截图放在哪
    me.left+picture1.left 是横坐标从屏幕的什么位置开始
    me.top+picture1.top   是纵坐标从屏幕的什么位置开始
      

  8.   

    谢谢了asftrhgjhkjlkttttttt(孤独剑) 
    我终于把图弄好了