• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 关于在ActiveX中打印的问题,我使用CDC打印最后ENDDOC时总是报错,请问该如何解决,在线等。

关于在ActiveX中打印的问题,我使用CDC打印最后ENDDOC时总是报错,请问该如何解决,在线等。

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了关于在ActiveX中打印的问题,我使用CDC打印最后ENDDOC时总是报错,请问该如何解决,在线等。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于在ActiveX中打印的问题,我使用CDC打印最后ENDDOC时总是报错,请问该如何解决,在线等。
描述:

请问我在ActiveX中封装打印的一些函数,我可以startdoc 但是却不能enddoc返回的int 总是1,不知到我少了什么,请高手指教我在代码里少了什么?
代码如下:
BOOL CFJDCPrintButtonXCtrl::InitPrint() 
{
// TODO: Add your dispatch handler code here
PRINTDLG ppd;
if (m_PrinterDC.m_hDC!=NULL)
return FALSE;
if (AfxGetApp()->GetPrinterDeviceDefaults(&ppd)==FALSE)
return FALSE;
/* if (PrintDlg(&ppd)==FALSE)
return FALSE;
*/ if (AfxGetApp()->CreatePrinterDC(m_PrinterDC)==FALSE)
return FALSE;
//m_PrinterDC.Attach(ppd.hDC);
m_PrinterDC.SetMapMode(MM_LOMETRIC);
m_PrinterDC.m_bPrinting=TRUE;
return TRUE;
}
BOOL CFJDCPrintButtonXCtrl::StartDoc() 
{
// TODO: Add your dispatch handler code here
if (m_PrinterDC.m_hDC==NULL)
return FALSE;
if (m_PrinterDC.IsPrinting()==FALSE)
return FALSE;
int retval;
DOCINFO doc;
doc.lpszDocName=m_docName;
doc.lpszOutput=NULL;
doc.lpszDatatype=NULL;
doc.cbSize=sizeof(DOCINFO);
retval=m_PrinterDC.StartDoc(&doc);
if (retval==-1)
return FALSE;
return TRUE;
}
BOOL CFJDCPrintButtonXCtrl::StartPage() 
{
// TODO: Add your dispatch handler code here
if (m_PrinterDC.m_hDC==NULL)
return FALSE;
if (m_PrinterDC.IsPrinting()==FALSE)
return FALSE;
int retval;
retval=m_PrinterDC.StartPage();
if (retval==-1)
return FALSE;
return TRUE;
}
BOOL CFJDCPrintButtonXCtrl::EndPage() 
{
// TODO: Add your dispatch handler code here
if (m_PrinterDC.m_hDC==NULL)
return FALSE;
if (m_PrinterDC.IsPrinting()==FALSE)
return FALSE;
int retval;
retval=m_PrinterDC.EndPage();
if (retval==-1)
return FALSE;
return TRUE;
return TRUE;
}
BOOL CFJDCPrintButtonXCtrl::AbortDoc() 
{
// TODO: Add your dispatch handler code here
if (m_PrinterDC.m_hDC==NULL)
return FALSE;
if (m_PrinterDC.IsPrinting()==FALSE)
return FALSE;
int retval;
retval=m_PrinterDC.AbortDoc();
if (retval!=0)
{
m_errorCode=retval;
return FALSE;
}
return TRUE;
}
BOOL CFJDCPrintButtonXCtrl::EndDoc() 
{
// TODO: Add your dispatch handler code here
  if (m_PrinterDC.m_hDC==NULL)
return FALSE;
if (m_PrinterDC.IsPrinting()==FALSE)
return FALSE;
int retval;
retval=m_PrinterDC.EndDoc();
if (retval!=0)
{
DWORD A;
A=GetLastError();
return FALSE;
}
return TRUE;
}
BOOL CFJDCPrintButtonXCtrl::ReleasPrint() 
{
// TODO: Add your dispatch handler code here
if (m_PrinterDC.m_hDC==NULL)
return FALSE;
if (m_PrinterDC.DeleteDC()==FALSE)
return FALSE;
return TRUE;
}
BOOL CFJDCPrintButtonXCtrl::TextOut(LPCTSTR Text) 
{
// TODO: Add your dispatch handler code here
BOOL retval;
if (m_PrinterDC.m_hDC==NULL)
return FALSE;
if (m_PrinterDC.IsPrinting()==FALSE)
return FALSE;
LOGFONT lfont,oldlfont;
CFont font,*oldfont;
oldf /> oldfont->GetLogFont(&oldlfont);
lf /> font.CreateFontIndirect(&lfont);
m_PrinterDC.SelectObject(font);
retval=m_PrinterDC.TextOut(m_currentX,m_currentY,Text,strlen(Text));
m_PrinterDC.SelectObject(oldfont);
return retval;
}
我得调用顺序时 INITPRINT-STARTDOC-STARTPAGE-TextOut-ENDPAGE-ENDDOC-RELEASEPRINT


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于在ActiveX中打印的问题,我使用CDC打印最后ENDDOC时总是报错,请问该如何解决,在线等。

相关文章

  • 2017-06-04 ATL高手进来帮忙
  • 2017-06-04 mfc开发的activex控件+第三方dll打包成cab的问题
  • 2017-06-05 extern"C"declspecdllexportbool_stdcallmypro为什么调用时成了_mypro@8
  • 2017-06-05 关于可移植的讨论,关于win32api的
  • 2017-06-05 一个console程序,我怎么能隐藏其出现的DOS窗口,而不结束其进程
  • 2017-06-05 请问是什么静态连接库?
  • 2017-06-05 apihook为何hook不到CWnd::MessageBox
  • 2017-06-04 CHtmlView枚举指定的超链接
  • 2017-06-04 关于用vc开发office插件的几个问题,望各位高手指教!
  • 2017-06-05 如何掌握ATL编程方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何把matlab编译器编译的c++代码加入到vcproject中?
    • 一个摄像头两个显示窗口VCDirectShow
    • 单文档视图结构的ActiveX控件
    • ATL7中加入socket的头文件编译出错
    • (急)怎么样正确的调用ocx控件
    • 虚拟内存,保留和提交的问题
    • 在vc中ATL编写一个函数接收客户端程序传来的组件对象变量
    • 请帮忙看看下面服务中的createwindow
    • 到底什么时候应该用VARIANT,什么时候应该用variant_t
    • 系统托盘的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有