ListCtrlPrint.h
上传用户:ledldq
上传日期:2007-01-04
资源大小:95k
文件大小:2k
源码类别:

打印编程

开发平台:

Visual C++

  1. // ListCtrlPrint.h: interface for the CListCtrlPrint class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_LISTCTRLPRINT_H__E1B3DDE2_9D53_11D1_8BAC_0000B43382FE__INCLUDED_)
  5. #define AFX_LISTCTRLPRINT_H__E1B3DDE2_9D53_11D1_8BAC_0000B43382FE__INCLUDED_
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. #include "PrinterJob.h"
  10. class CListCtrlPrint : public CPrinterJob  
  11. {
  12. public:
  13. CListCtrlPrint();
  14. virtual ~CListCtrlPrint();
  15. CRect rcMarginMM; // contain the margins in millimeters
  16. CFont ftPrint, ftHead, ftFoot; // fonts used for printing
  17. CSize szFtPrint, szFtHead, szFtFoot; // sizes of fonts (in device unit)
  18. int * pDx, * pFormat; // datas about column size and format (center, right ..)
  19. char ** pColTitle; // columns titles
  20. int iItemXPage, iNumCol, iTotItem; // number of item in page, of columns and of tot number of items in list control
  21. CListCtrl * pList; // pointer of the list ctrl
  22. CString csPageHead; // text of header
  23. CString csPageFooter; // text of footer
  24. CString csPage; // format of page number / tot pages (ex. page %d of %d)
  25. CString csFtHead, csFtFoot, csFtPrint; // fonts type names
  26. int     iFtHead, iFtFoot, iFtPrint; // fonts sizes
  27. CSize szFoot; // internal use
  28. // this subtracts the margins from the page size
  29. void SubtractMargin(CDC * pDC, CRect &rc);
  30. // virtual overridden from base class; same meaning of CView's one
  31. void OnBeginPrinting(CDC * pDC, CPrintInfo * pInfo);
  32. void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  33. bool OnPreparePrinting(CPrintInfo* pInfo, bool bPrintPreview = false);
  34. void OnPrint(CDC* pDC, CPrintInfo* pInfo);
  35. // function self explicative; the items will be printed in the OnPrint function
  36. // if bCalc is true, the function is called to compute the space for items and so
  37. // no printing is needed, but only to return the size used and to subtract from the
  38. // rcpage the space used
  39. CSize PrintListFoot(CDC * pDC, CRect & rcPage, bool bCalc);
  40. CSize PrintListHead(CDC * pDC, CRect & rcPage, bool bCalc);
  41. CSize PrintPageFoot(CDC * pDC, CRect & rcPage, bool bCalc);
  42. CSize PrintPageHead(CDC * pDC, CRect & rcPage, const int nPage, const int iMaxPage, bool bCalc);
  43. };
  44. #endif // !defined(AFX_LISTCTRLPRINT_H__E1B3DDE2_9D53_11D1_8BAC_0000B43382FE__INCLUDED_)