////////////////////////////////////////////////////////////////////////////// //文件: CItem类扩展 //主要功能: // 操作各类元素或完成一定的功能 // //程序编写: 2006-12-07 // // ///////////////////////////////////////////////////////////////////////////// #pragma once #include "itemBase.h" #include "atltypes.h" namespace NDrawView { class CItemPrint : public CItemBase { public: CItemPrint(CSigmaDoc * ppDoc); virtual ~CItemPrint(void); void OnDraw(CXyDC* pDC) override; 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); virtual void AfterEndPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnFilePrintPreviewUIUpdate(CCmdUI* pCmdUI); virtual void OnFilePrintPreview(void); virtual void OnEndPrintPreview(CDC* pDC, CPrintInfo* pInfo, POINT point, CPreviewView* pView); virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo); void OnDrawSetDC(CXyDC* pDC); //设置分页打印时的浏览范围 CRect GetViewRect(CRect oldViewRect); BOOL GetRulerBarState(void); void SetRulerBarState(BOOL bView); void ClearPreviewDC(void); void EnablePrinting(BOOL bEnable); public: CRect GetPrintArea(CDC* pDC); CSize GetPartitionNum(CDC* pDC); void MarginRect(CRect& rt); void PrintPageNumber(CDC *pDC); void DrawPageFrame(CDC* pDC, CRect rect); CRect GetMarginRect(double sc=1.0); CSize GetSuperpositionWidth(void); void SetSectionSize(long cx,long cy); protected: CSize m_szPageNum; //横纵最大页数(cx=列数,cy=行数) BOOL m_bChildRulerBar = FALSE; CXyDC* m_pPreviewDC; BOOL m_bPrinting; BOOL m_bRestorePreviewDC; }; };