schoolView.cpp
上传用户:rs600066
上传日期:2017-10-16
资源大小:4788k
文件大小:4k
源码类别:

数据库系统

开发平台:

Visual C++

  1. // schoolView.cpp : implementation of the CSchoolView class
  2. //
  3. #include "stdafx.h"
  4. #include "school.h"
  5. #include "schoolDoc.h"
  6. #include "schoolView.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CSchoolView
  14. IMPLEMENT_DYNCREATE(CSchoolView, CView)
  15. BEGIN_MESSAGE_MAP(CSchoolView, CView)
  16. //{{AFX_MSG_MAP(CSchoolView)
  17. ON_WM_PAINT()
  18. //}}AFX_MSG_MAP
  19. // Standard printing commands
  20. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  21. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  22. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  23. END_MESSAGE_MAP()
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CSchoolView construction/destruction
  26. CSchoolView::CSchoolView()
  27. {
  28. // TODO: add construction code here
  29. }
  30. CSchoolView::~CSchoolView()
  31. {
  32. }
  33. BOOL CSchoolView::PreCreateWindow(CREATESTRUCT& cs)
  34. {
  35. // TODO: Modify the Window class or styles here by modifying
  36. //  the CREATESTRUCT cs
  37. return CView::PreCreateWindow(cs);
  38. }
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CSchoolView drawing
  41. void CSchoolView::OnDraw(CDC* pDC)
  42. {
  43. CSchoolDoc* pDoc = GetDocument();
  44. ASSERT_VALID(pDoc);
  45. // TODO: add draw code for native data here
  46. }
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CSchoolView printing
  49. BOOL CSchoolView::OnPreparePrinting(CPrintInfo* pInfo)
  50. {
  51. // default preparation
  52. return DoPreparePrinting(pInfo);
  53. }
  54. void CSchoolView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  55. {
  56. // TODO: add extra initialization before printing
  57. }
  58. void CSchoolView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  59. {
  60. // TODO: add cleanup after printing
  61. }
  62. /////////////////////////////////////////////////////////////////////////////
  63. // CSchoolView diagnostics
  64. #ifdef _DEBUG
  65. void CSchoolView::AssertValid() const
  66. {
  67. CView::AssertValid();
  68. }
  69. void CSchoolView::Dump(CDumpContext& dc) const
  70. {
  71. CView::Dump(dc);
  72. }
  73. CSchoolDoc* CSchoolView::GetDocument() // non-debug version is inline
  74. {
  75. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSchoolDoc)));
  76. return (CSchoolDoc*)m_pDocument;
  77. }
  78. #endif //_DEBUG
  79. /////////////////////////////////////////////////////////////////////////////
  80. // CSchoolView message handlers
  81. void CSchoolView::OnPaint() 
  82. {
  83. CPaintDC* pDC=new CPaintDC(this);            // 创建设备上下文
  84. CBitmap bmp;   
  85. RECT Rect;
  86. RECT RectView;
  87. POINT ptSize;
  88. CDC dcmem;
  89. BITMAP bm;
  90. int b = bmp.LoadBitmap(IDB_BITMAP_BG);        //将位图取出;
  91. dcmem.CreateCompatibleDC(pDC);                //创建兼容设备上下文。
  92. dcmem.SelectObject(&bmp);                      //用设备上下文选择位图;
  93. dcmem.SetMapMode(pDC->GetMapMode());        //设置映射方式;
  94. GetObject(bmp.m_hObject, sizeof(BITMAP), (LPSTR)&bm); //映射位图;
  95. GetClientRect(&Rect);
  96. ptSize.x=bm.bmWidth;
  97. ptSize.y=bm.bmHeight;
  98. pDC->DPtoLP((LPPOINT)&ptSize,1);              //设备单元to逻辑单元;
  99. GetClientRect(&RectView);
  100. CRect RectBmp = RectView;
  101. //当位图宽度容纳不下的处理
  102. if((RectView.right - RectView.left) > bm.bmWidth)    
  103. {
  104. RectBmp.left = RectView.left + (RectView.right - RectView.left - bm.bmWidth) / 2;
  105. RectBmp.right = bm.bmWidth;
  106. }
  107. else
  108. {
  109. RectBmp.left = RectView.left;
  110. RectBmp.right = RectView.right - RectBmp.left;
  111. }
  112. //当位图高度容纳不下的处理
  113. if((RectView.bottom - RectView.top) > bm.bmHeight)
  114. {
  115. RectBmp.top = RectView.top + (RectView.bottom - RectView.top - bm.bmHeight) / 2;
  116. RectBmp.bottom = bm.bmHeight;
  117. }
  118. else
  119. {
  120. RectBmp.top = RectView.top;
  121. RectBmp.bottom = RectView.bottom - RectBmp.top;
  122. }
  123. //加载视图到设备上下文中
  124. pDC->StretchBlt(RectBmp.left, RectBmp.top, RectBmp.right,
  125. RectBmp.bottom, &dcmem, 0, 0, bm.bmWidth, bm.bmHeight,
  126. SRCCOPY);
  127. //删除设备上下文
  128. dcmem.DeleteDC();
  129. }