Dsplitview.cpp
上传用户:hnhlzg
上传日期:2013-10-19
资源大小:289k
文件大小:3k
源码类别:

数学计算

开发平台:

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. {       if(state1==1)
  44. {
  45.     CBitmap m_bitmap;
  46.     HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,_T(filename),IMAGE_BITMAP,
  47.    0,0,LR_CREATEDIBSECTION|LR_DEFAULTSIZE|LR_LOADFROMFILE);
  48.         m_bitmap.Attach (hBitmap);
  49.     CDC dcImage;
  50.     if(!dcImage.CreateCompatibleDC (pDC))
  51.     return;
  52.     BITMAP bm;
  53.     m_bitmap.GetBitmap (&bm);
  54.         dcImage.SelectObject (&m_bitmap);
  55.     pDC->BitBlt (0,0,bm.bmWidth ,bm.bmHeight ,&dcImage,0,0,SRCCOPY);
  56. }
  57. }
  58. /////////////////////////////////////////////////////////////////////////////
  59. // CDSplitView printing
  60. BOOL CDSplitView::OnPreparePrinting(CPrintInfo* pInfo)
  61. {
  62. // default preparation
  63. return DoPreparePrinting(pInfo);
  64. }
  65. void CDSplitView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  66. {
  67. // TODO: add extra initialization before printing
  68. }
  69. void CDSplitView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  70. {
  71. // TODO: add cleanup after printing
  72. }
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CDSplitView diagnostics
  75. #ifdef _DEBUG
  76. void CDSplitView::AssertValid() const
  77. {
  78. CView::AssertValid();
  79. }
  80. void CDSplitView::Dump(CDumpContext& dc) const
  81. {
  82. CView::Dump(dc);
  83. }
  84. CDSplitDoc* CDSplitView::GetDocument() // non-debug version is inline
  85. {
  86. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDSplitDoc)));
  87. return (CDSplitDoc*)m_pDocument;
  88. }
  89. #endif //_DEBUG
  90. /////////////////////////////////////////////////////////////////////////////
  91. // CDSplitView message handlers
  92. BOOL CDSplitView::OnEraseBkgnd(CDC* pDC) 
  93. {
  94. CRect rect;
  95. GetClientRect(&rect);
  96. pDC->FillSolidRect(&rect,::GetSysColor(COLOR_WINDOW));
  97. return TRUE;
  98. }
  99. void CDSplitView::OnYuantu() 
  100. {
  101. // TODO: Add your command handler code here
  102. CDSplitDoc* pDoc = GetDocument();
  103. ASSERT_VALID(pDoc);
  104.     filename=pDoc->filename;
  105.   state1=1;
  106. Invalidate();
  107. }