我想实现类似屏幕打印的功能,我在程序中用了内存DC保存当前显示的内容,想在需要的时候打印内存DC,可是打印不出来。而打印普通的bitmap图片没有问题,不知道是不是用于内存DC的BIMAP不同于普通bitmap的加载呀?? 哪位做过类似的打印,请多指教。

解决方案 »

  1.   

    当然可以
    获得打印机设备环境
    然后用
    bitblt向打印机设备画就行了
      

  2.   

    我试过是可以的,不过做法比较麻烦。对于创建内存DC一定要是当前屏幕设备的兼容DC,然后再屏幕DC创建一个兼容的图片对象(HBITMAP或CBitmap)(主意一定要是前屏幕设备的兼容DC)。再把此图片对象设置成当前DC的GDI对象,然后向内存DC中画想画的东西。在需要打印的地方只需要创建一个打印DC兼容内存DC,然后把此图片对象选入GDI对象中,即可使用bitblt向打印机打印,但是一般可能都需要StretchBlt打印到打印机,因为打印机的像素分辨率要高很多,不过打印不来不理想的地方就是图像不太清晰。这种方法是肯定可以的,因为我最先做打印就是这么做的!
      

  3.   

    wuchunzhong() 你这种方法只能打印预览,并不能打印,在真正的打印设备上,是不能选入该图片的,你不信就试试