我最近根据资料写了段捕获当前窗口并打印的代码,在我的PC上能用,但到别人的PC上打印的确实白纸,而我和他们连接的是同一台打印机,应该不是设备无关、相关的问题吧!?其中关于设备环境和打印的部分代码是如下:
  .....
  memDC.BitBlt(0,0,sizeClient.cx,sizeClient.cy,&screenDC,0,0,SRCCOPY);
  .......
  PRINTDLG pd;
  .......
  CDC *pDC = new CDC;    
  .......
  pDC->Attach(pd.hDC);
  .......
    pDC->StretchBlt(0,0,sizePrn.cx,sizePrn.cy,&memDC,0,0,sizeScreen.cx,sizeScreen.cy,SRCCOPY);
是不是要用StretchDIBits?怎么用?望高手能指点一二,不胜感激,分不够可以再加,或是有类似源码发到我信箱([email protected]),谢谢!

解决方案 »

  1.   

    “检测代码”有错误,检查不出啊,我的PC上用的非常好啊!另外我和其他人的PC配置应该是一样啊,都是Win2000,并确都装了VC啊,如果高手们有兴趣可以到 http://www.codesky.net/showhtml/3104.htm  下到源码?非常小(2.67kb)!
      

  2.   

    有的打印机不支持bitblt函数,应该使用StretchDIBits()函数.你的想法是对的
      

  3.   

    to : yitang2003(yitang),关键是我们连接的是同一个打印机啊!
      

  4.   

    先谢谢各位的热情参与!再说明一下情况,我和他们的PC连接的是同一台打印机!他们的PC的其他程序都能顺利使用这台打印机,用我的程序打印的却是白纸?What's wrong?郁闷很久了!