您的位置:首页 > 其它

【框架-MFC】CView(chenlu1):MFC在CView的派生类中实现打印和打印预览

2013-06-19 11:37 337 查看
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////

#define ID_BTN_PRINT			1111111
#define ID_BTN_PRINT_PREVIEW	1111112
#define IDD_DLG_MY_VIEW			11111

#ifdef  SHARED_HANDLERS
#undef  SHARED_HANDLERS
class CMyViewDlg : public CDialogEx
{
DECLARE_DYNAMIC(CMyViewDlg)
public:
CMyViewDlg(CWnd* pParent = NULL);   // 标准构造函数
virtual ~CMyViewDlg();
// 对话框数据
enum { IDD = IDD_DLG_MY_VIEW };
protected:
DECLARE_MESSAGE_MAP()
private:
CMyView* m_myView;
public:
afx_msg void OnClickedBtnPrint();
afx_msg void OnClickedBtnPrintPreview();
};
BEGIN_MESSAGE_MAP(CMyViewDlg, CDialogEx)
ON_BN_CLICKED(ID_BTN_PRINT, &CMyViewDlg::OnClickedBtnPrint)
ON_BN_CLICKED(ID_BTN_PRINT_PREVIEW, &CMyViewDlg::OnClickedBtnPrintPreview)
END_MESSAGE_MAP()
//打印
void CMyViewDlg::OnClickedBtnPrint()
{
if (m_myView)
{
m_myView->OnFilePrint();
}

}
//打印预览
void CMyViewDlg::OnClickedBtnPrintPreview()
{
if (m_myView)
{
m_myView->OnFilePrintPreview();
}
}
class CMyView : public CView
{
DECLARE_DYNCREATE(CMyView)

public:
CMyView();
virtual ~CMyView();

public:
virtual void OnDraw(CDC* pDC);      // 重写以绘制该视图

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
void OnFilePrint();
void OnFilePrintPreview();
protected:
DECLARE_MESSAGE_MAP()
};

BEGIN_MESSAGE_MAP(CMyView, CView)
END_MESSAGE_MAP()

void CPlotView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
UpdateWindow();
}

void CMyView::CurveRedraw(BOOL bRedraw)
{
m_pCurveCtrl->Invalidate(bRedraw);
}

void CMyView::OnFilePrintPreview()
{
#ifndef SHARED_HANDLERS
AFXPrintPreview(this);
#endif
}

void CMyView::OnFilePrint()
{
CView::OnFilePrint();
// TODO: 在此添加控件通知处理程序代码
}

BOOL CMyView::OnPreparePrinting( CPrintInfo* pInfo )
{
return DoPreparePrinting(pInfo);
}

BOOL CMyView::PreCreateWindow( CREATESTRUCT& cs )
{
return CView::PreCreateWindow(cs);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐