问题:
在VC里CListView不像CEditView那样,只要你在建工程的向导里加了打印相关选项就会出现打印相关函数。CListView加了也白加。
最终解决办法 :
1、手动添加相关函数:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
// CMenuInfoView 打印
BOOL CMenuInfoView::OnPreparePrinting(CPrintInfo* pInfo)
{
m_Print.OnPreparePrinting(pInfo);
return DoPreparePrinting(pInfo);
}
void CMenuInfoView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
m_Print.OnBeginPrinting(pDC, pInfo);
}
void CMenuInfoView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
m_Print.OnPrint(pDC, pInfo);
}
void CMenuInfoView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
// 默认 CEditView 结束打印
m_Print.OnEndPrinting(pDC, pInfo);
}
2、添加第三方的ListView打印类并声明对象
CListDemoViewPrint m_Print;
3、程序会在打印的时候报错:
在rc文件中添加关键的一句
#include "l.chs//afxprint.rc" // printing/print preview resources
本文介绍了解决CListView在Visual C++中打印功能缺失的问题。通过手动添加打印相关函数及使用第三方打印类,使得CListView具备打印能力。同时,文中还提供了在资源文件中添加必要的包含指令来避免运行时错误。
3313





