ActiveX控件中的打印代码一直是运行正常,可今天为了修改ActiveX控件的版本,修改资源文件后,打印功能一直报错。

 

 Debug后发现错误描述信息是:
 

  1. ERROR: Cannot find dialog template with IDD 0x7803. 
 

     错误的根源就是下述代码,原因是用于打印预览的对话框工具栏的资源无法找到,而这些资源是在afxprint.rc文件中的。

  1. #ifdef _DEBUG  
  2.     // dialog template must exist and be invisible with WS_CHILD set  
  3.     if (!_AfxCheckDialogTemplate(lpszTemplateName, TRUE))  
  4.     {  
  5. ASSERT(FALSE);          // invalid dialog template name  
  6.         PostNcDestroy();        // cleanup if Create fails too soon  
  7.         return FALSE;  
  8.     }  
  9. #endif //_DEBUG  

     因此修改的方法也很简单,用源代码文本编辑器打开资源文件”XXX.rc”,在其中加入

  1. #include "l.chs\\afxprint.rc" 

参考资料

http://www.codeguru.com/forum/showthread.php?t=347195