FormatNumView.cpp
上传用户:lqt88888
上传日期:2009-12-14
资源大小:905k
文件大小:3k
源码类别:

书籍源码

开发平台:

Visual C++

  1. // FormatNumView.cpp : implementation of the CFormatNumView class
  2. //
  3. #include "stdafx.h"
  4. #include "FormatNum.h"
  5. #include "FormatNumSet.h"
  6. #include "FormatNumDoc.h"
  7. #include "FormatNumView.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CFormatNumView
  15. IMPLEMENT_DYNCREATE(CFormatNumView, CRecordView)
  16. BEGIN_MESSAGE_MAP(CFormatNumView, CRecordView)
  17. //{{AFX_MSG_MAP(CFormatNumView)
  18. ON_BN_CLICKED(IDC_SHOW, OnShow)
  19. ON_BN_CLICKED(IDC_MODIFY, OnModify)
  20. //}}AFX_MSG_MAP
  21. // Standard printing commands
  22. ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
  23. ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
  24. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
  25. END_MESSAGE_MAP()
  26. /////////////////////////////////////////////////////////////////////////////
  27. // CFormatNumView construction/destruction
  28. CFormatNumView::CFormatNumView()
  29. : CRecordView(CFormatNumView::IDD)
  30. {
  31. //{{AFX_DATA_INIT(CFormatNumView)
  32. m_pSet = NULL;
  33. m_fNumber = 0.0;
  34. //}}AFX_DATA_INIT
  35. // TODO: add construction code here
  36. }
  37. CFormatNumView::~CFormatNumView()
  38. {
  39. }
  40. void CFormatNumView::DoDataExchange(CDataExchange* pDX)
  41. {
  42. CRecordView::DoDataExchange(pDX);
  43. //{{AFX_DATA_MAP(CFormatNumView)
  44. DDX_Text(pDX, IDC_NUMBER, m_fNumber);
  45. //}}AFX_DATA_MAP
  46. }
  47. BOOL CFormatNumView::PreCreateWindow(CREATESTRUCT& cs)
  48. {
  49. // TODO: Modify the Window class or styles here by modifying
  50. //  the CREATESTRUCT cs
  51. return CRecordView::PreCreateWindow(cs);
  52. }
  53. void CFormatNumView::OnInitialUpdate()
  54. {
  55. m_pSet = &GetDocument()->m_formatNumSet;
  56. CRecordView::OnInitialUpdate();
  57. GetParentFrame()->RecalcLayout();
  58. ResizeParentToFit();
  59. }
  60. /////////////////////////////////////////////////////////////////////////////
  61. // CFormatNumView printing
  62. BOOL CFormatNumView::OnPreparePrinting(CPrintInfo* pInfo)
  63. {
  64. // default preparation
  65. return DoPreparePrinting(pInfo);
  66. }
  67. void CFormatNumView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  68. {
  69. // TODO: add extra initialization before printing
  70. }
  71. void CFormatNumView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  72. {
  73. // TODO: add cleanup after printing
  74. }
  75. /////////////////////////////////////////////////////////////////////////////
  76. // CFormatNumView diagnostics
  77. #ifdef _DEBUG
  78. void CFormatNumView::AssertValid() const
  79. {
  80. CRecordView::AssertValid();
  81. }
  82. void CFormatNumView::Dump(CDumpContext& dc) const
  83. {
  84. CRecordView::Dump(dc);
  85. }
  86. CFormatNumDoc* CFormatNumView::GetDocument() // non-debug version is inline
  87. {
  88. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFormatNumDoc)));
  89. return (CFormatNumDoc*)m_pDocument;
  90. }
  91. #endif //_DEBUG
  92. /////////////////////////////////////////////////////////////////////////////
  93. // CFormatNumView database support
  94. CRecordset* CFormatNumView::OnGetRecordset()
  95. {
  96. return m_pSet;
  97. }
  98. /////////////////////////////////////////////////////////////////////////////
  99. // CFormatNumView message handlers
  100. //显示第一条记录
  101. void CFormatNumView::OnShow() 
  102. {
  103. double fNumber = m_pSet->m_Number;
  104. m_fNumber = fNumber*100;
  105. UpdateData(FALSE);
  106. }
  107. //修改第一条记录
  108. void CFormatNumView::OnModify() 
  109. {
  110. UpdateData(TRUE);
  111. m_pSet->Edit();
  112. m_pSet->m_Number = m_fNumber/100;
  113. m_pSet->Update();
  114. }