新建View类MFC打印报错

本文详细介绍了在使用MFC进行打印预览时遇到的问题,包括错误信息、解决步骤和注意事项。通过修改代码中的一个关键句,成功解决了打印错误和预览问题,同时讨论了MFC打印及打印预览自动调用OnDraw的功能及其效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

就在对话框调出单文档打印时

做了很多事情当然

APP中  
ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup)  
View中  
重载  
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);  
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);  
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);  
virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);  
消息映射  
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)  
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)  
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)  

.rc中已经添加#include "l.chs\\afxprint.rc"  
----
依然出现错误
Debug Assertion Failed!
打印错误 File:viewprnt.cpp
  Line:161
打印预览:File:viewprev.cpp
  Line:276

与此处类似http://topic.youkuaiyun.com/t/20010729/18/214532.html


依旧报错

最后就改了两个字母就解决了啊

BOOL CDlg2ViewView::OnPreparePrinting(CPrintInfo* pInfo) 
{
	// TODO: call DoPreparePrinting to invoke the Print dialog box
	
	return CScrollView::DoPreparePrinting(pInfo);
}

最后一句一开始是这样的

return CScrollView::OnPreparePrinting(pInfo);


顺便在这里记个笔记

众所周知,MFC打印及打印预览可以自动调用OnDraw,但是其效果差强人意


如何在打印时不调用OnDraw呢?

其实只要在OnPrint中删除掉最后一行代码就好了啊

/*	CScrollView::OnPrint(pDC, pInfo);*/


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值