// Start =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // General information section. // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // $Author:yongkiang$ User who last changed the file // $Date:1/2/2013 12:16:33 PM$ Date and time of last check in // $Revision:1.0$ Visual SourceSafe version number // $Workfile:: LPrint.h $ Filename // End =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- // ListCtrlPrint.h: interface for the CListCtrlPrint class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_LISTCTRLPRINT_H__E1B3DDE2_9D53_11D1_8BAC_0000B43382FE__INCLUDED_) #define AFX_LISTCTRLPRINT_H__E1B3DDE2_9D53_11D1_8BAC_0000B43382FE__INCLUDED_ #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 #include "PrintJob.h" #ifdef BUILD_GUIDLL #define DLLCLASS __declspec(dllexport) #else #define DLLCLASS __declspec(dllimport) #endif class DLLCLASS CListCtrlPrint : public CPrinterJob { public: void Print(CListCtrl *List, CString csReportType = "NULL", CString csPackageName = "NULL", bool bUseDefaultPrint = false, bool* bPrinted = NULL); CListCtrlPrint(); virtual ~CListCtrlPrint(); CRect rcMarginMM; // contain the margins in millimeters CFont ftPrint, ftHead, ftFoot; // fonts used for printing CSize szFtPrint, szFtHead, szFtFoot; // sizes of fonts (in device unit) int *pDx, *pFormat; // datas about column size and format (center, right ..) char ** pColTitle; // columns titles int iItemXPage, iNumCol, iTotItem; // number of item in page, of columns and of tot number of items in list control CListCtrl * pList; // pointer of the list ctrl CString csPageHead; // text of header CString csPageFooter; // text of footer CString csPage; // format of page number / tot pages (ex. page %d of %d) CString csFtHead, csFtFoot, csFtPrint; // fonts type names int iFtHead, iFtFoot, iFtPrint; // fonts sizes CSize szFoot; // internal use // this subtracts the margins from the page size void SubtractMargin(CDC * pDC, CRect &rc); // virtual overridden from base class; same meaning of CView's one void OnBeginPrinting(CDC * pDC, CPrintInfo * pInfo); void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); bool OnPreparePrinting(CPrintInfo* pInfo, bool bUseDefaultPrint = false, bool bPrintPreview = false); void OnPrint(CDC* pDC, CPrintInfo* pInfo); // function self explicative; the items will be printed in the OnPrint function // if bCalc is true, the function is called to compute the space for items and so // no printing is needed, but only to return the size used and to subtract from the // rcpage the space used CSize PrintListFoot(CDC * pDC, CRect & rcPage, bool bCalc); CSize PrintListHead(CDC * pDC, CRect & rcPage, bool bCalc); CSize PrintPageFoot(CDC * pDC, CRect & rcPage, bool bCalc); CSize PrintPageHead(CDC * pDC, CRect & rcPage, const int nPage, const int iMaxPage, bool bCalc); }; #endif // !defined(AFX_LISTCTRLPRINT_H__E1B3DDE2_9D53_11D1_8BAC_0000B43382FE__INCLUDED_)