Dsplitview.cpp
Upload User: szkelitina
Upload Date: 2022-05-21
Package Size: 6797k
Code Size: 3k
Category:

Special Effects

Development Platform:

Visual C++

  1. // DSplitView.cpp : implementation of the CDSplitView class
  2. //
  3. #include "stdafx.h"
  4. #include "DSplit.h"
  5. #include "DSplitDoc.h"
  6. #include "DSplitView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CDSplitView
  14. IMPLEMENT_DYNCREATE(CDSplitView, CView)
  15. BEGIN_MESSAGE_MAP(CDSplitView, CView)
  16. //{{AFX_MSG_MAP(CDSplitView)
  17. ON_WM_ERASEBKGND()
  18. ON_COMMAND(ID_YUANTU, OnYuantu)
  19. //}}AFX_MSG_MAP
  20. // Standard printing commands
  21. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  22. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  23. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  24. END_MESSAGE_MAP()
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CDSplitView construction/destruction
  27. CDSplitView::CDSplitView()
  28. {
  29. state1=0; // TODO: add construction code here
  30. }
  31. CDSplitView::~CDSplitView()
  32. {
  33. }
  34. BOOL CDSplitView::PreCreateWindow(CREATESTRUCT& cs)
  35. {
  36. // TODO: Modify the Window class or styles here by modifying
  37. //  the CREATESTRUCT cs
  38. return CView::PreCreateWindow(cs);
  39. }
  40. /////////////////////////////////////////////////////////////////////////////
  41. // CDSplitView drawing
  42. void CDSplitView::OnDraw(CDC* pDC)
  43. {       
  44. if(state1==1)
  45. {
  46. CBitmap m_bitmap;
  47. HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,_T(filename),IMAGE_BITMAP,
  48. 0,0,LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);
  49. m_bitmap.Attach (hBitmap);
  50. CDC dcImage;
  51. if(!dcImage.CreateCompatibleDC (pDC))
  52. return;
  53. BITMAP bm;
  54. m_bitmap.GetBitmap (&bm);
  55. dcImage.SelectObject (&m_bitmap);
  56. pDC->BitBlt (0,0,bm.bmWidth ,bm.bmHeight ,&dcImage,0,0,SRCCOPY);
  57. }
  58. }
  59. /////////////////////////////////////////////////////////////////////////////
  60. // CDSplitView printing
  61. BOOL CDSplitView::OnPreparePrinting(CPrintInfo* pInfo)
  62. {
  63. // default preparation
  64. return DoPreparePrinting(pInfo);
  65. }
  66. void CDSplitView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  67. {
  68. // TODO: add extra initialization before printing
  69. }
  70. void CDSplitView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  71. {
  72. // TODO: add cleanup after printing
  73. }
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CDSplitView diagnostics
  76. #ifdef _DEBUG
  77. void CDSplitView::AssertValid() const
  78. {
  79. CView::AssertValid();
  80. }
  81. void CDSplitView::Dump(CDumpContext& dc) const
  82. {
  83. CView::Dump(dc);
  84. }
  85. CDSplitDoc* CDSplitView::GetDocument() // non-debug version is inline
  86. {
  87. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDSplitDoc)));
  88. return (CDSplitDoc*)m_pDocument;
  89. }
  90. #endif //_DEBUG
  91. /////////////////////////////////////////////////////////////////////////////
  92. // CDSplitView message handlers
  93. BOOL CDSplitView::OnEraseBkgnd(CDC* pDC) 
  94. {
  95. CRect rect;
  96. GetClientRect(&rect);
  97. pDC->FillSolidRect(&rect,::GetSysColor(COLOR_WINDOW));
  98. return TRUE;
  99. }
  100. void CDSplitView::OnYuantu() 
  101. {
  102. CDSplitDoc* pDoc = GetDocument();
  103. ASSERT_VALID(pDoc);
  104.     filename=pDoc->filename;
  105. state1=1;
  106. Invalidate();
  107. }