PrintPreviewView.cpp
上传用户:cskgc_123
上传日期:2007-01-04
资源大小:56k
文件大小:3k
源码类别:

打印编程

开发平台:

Visual C++

  1. // PrintPreviewView.cpp : implementation of the CPrintPreviewView class
  2. //
  3. #include "stdafx.h"
  4. #include "PrintPreview.h"
  5. #include "PrintPreviewDoc.h"
  6. #include "PrintPreviewView.h"
  7. #include "MyPreviewView.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CPrintPreviewView
  15. IMPLEMENT_DYNCREATE(CPrintPreviewView, CEditView)
  16. BEGIN_MESSAGE_MAP(CPrintPreviewView, CEditView)
  17. //{{AFX_MSG_MAP(CPrintPreviewView)
  18. ON_COMMAND(ID_FILE_IMPROVEDPRINTPREVIEW, OnFileImprovedprintpreview)
  19. //}}AFX_MSG_MAP
  20. // Standard printing commands
  21. ON_COMMAND(ID_FILE_PRINT, CEditView::OnFilePrint)
  22. ON_COMMAND(ID_FILE_PRINT_DIRECT, CEditView::OnFilePrint)
  23. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CEditView::OnFilePrintPreview)
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CPrintPreviewView construction/destruction
  27. CPrintPreviewView::CPrintPreviewView()
  28. {
  29. // TODO: add construction code here
  30. }
  31. CPrintPreviewView::~CPrintPreviewView()
  32. {
  33. }
  34. BOOL CPrintPreviewView::PreCreateWindow(CREATESTRUCT& cs)
  35. {
  36. // TODO: Modify the Window class or styles here by modifying
  37. //  the CREATESTRUCT cs
  38. BOOL bPreCreated = CEditView::PreCreateWindow(cs);
  39. cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
  40. return bPreCreated;
  41. }
  42. /////////////////////////////////////////////////////////////////////////////
  43. // CPrintPreviewView drawing
  44. void CPrintPreviewView::OnDraw(CDC* pDC)
  45. {
  46. UNUSED(pDC);
  47. CPrintPreviewDoc* pDoc = GetDocument();
  48. ASSERT_VALID(pDoc);
  49. // TODO: add draw code for native data here
  50. }
  51. /////////////////////////////////////////////////////////////////////////////
  52. // CPrintPreviewView printing
  53. BOOL CPrintPreviewView::OnPreparePrinting(CPrintInfo* pInfo)
  54. {
  55. // default CEditView preparation
  56. return CEditView::OnPreparePrinting(pInfo);
  57. }
  58. void CPrintPreviewView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
  59. {
  60. // Default CEditView begin printing.
  61. CEditView::OnBeginPrinting(pDC, pInfo);
  62. }
  63. void CPrintPreviewView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
  64. {
  65. // Default CEditView end printing
  66. CEditView::OnEndPrinting(pDC, pInfo);
  67. }
  68. /////////////////////////////////////////////////////////////////////////////
  69. // CPrintPreviewView diagnostics
  70. #ifdef _DEBUG
  71. void CPrintPreviewView::AssertValid() const
  72. {
  73. CEditView::AssertValid();
  74. }
  75. void CPrintPreviewView::Dump(CDumpContext& dc) const
  76. {
  77. CEditView::Dump(dc);
  78. }
  79. CPrintPreviewDoc* CPrintPreviewView::GetDocument() // non-debug version is inline
  80. {
  81. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPrintPreviewDoc)));
  82. return (CPrintPreviewDoc*)m_pDocument;
  83. }
  84. #endif //_DEBUG
  85. /////////////////////////////////////////////////////////////////////////////
  86. // CPrintPreviewView message handlers
  87. void CPrintPreviewView::OnFileImprovedprintpreview() 
  88. {
  89. // need to use CMyPreviewView class
  90. CPrintPreviewState* pState = new CPrintPreviewState;
  91. if (!DoPrintPreview(IDD_PREVIEW, this, RUNTIME_CLASS(CMyPreviewView), pState))
  92. {
  93. TRACE0("Error: OnFileImprovedprintpreview failed.n");
  94. AfxMessageBox(AFX_IDP_COMMAND_FAILURE);
  95. delete pState;      // preview failed to initialize, delete State now
  96. }
  97. }