我的代码在调用打印机时,用到了
CPrintDialog dlg(FALSE);
HDC hdc = dlg.GetPrinterDC();
中间做一些操作,然后deleteDC();
打印是没有问题,可是在我的软件做其它操作就会导致异常,只要有执行完打印,再做其它操作时就肯定出问题,请问这是什么原因呢?顺便说一下,我的打印是基于对话框的。我的代码有用到CPaintDC dc(this);
CDC MemDC;
MemDC.CreateCompatibleDC(&dc);//我怀疑是在这里导致问题出现。可是找不到原因。
请高手们不吝赐教!!!
帮忙up,谢过!

解决方案 »

  1.   

    我没有用过CPaintDC,我写打印程序时是直接用pDC画出所有的内容的。用的过程是创建DOCINFO对象,pDC开始文档StartDoc,开始页StartPage,最后EndPage,EndDoc。这个方法在98下是可以的。不过就是繁琐了一些。
      

  2.   

    我是要在画图像, 所以才要用到CPaintDC, 才要CDC MemDC;
    MemDC.CreateCompatibleDC(&dc);
    但是你觉得我的问题应该是出在哪里呢?急啊!
      

  3.   

    只要有执行完打印,再做其它操作时就肯定出问题:
    这可能是你有些变量没有初始化就使用的问题,多半是一些double或者float数字,他们的值就比零大一点点点,好像是10的-351次方来着,碰到这种数字,只要你一访问,就死机,在惠普的一些打印机上比较明显,解决之道是把所有变量正确初始化。