关于ListView的打印问题

问题:

在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

你可能感兴趣的:(我的问题与解决,listview,command,resources,file)