问题:
在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