input.cpp
上传用户:hbzqs18
上传日期:2021-03-04
资源大小:46k
文件大小:4k
源码类别:

家庭/个人应用

开发平台:

Visual C++

  1. // input.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "学生家庭经济情况调查系统.h"
  5. #include "input.h"
  6. #include <fstream.h>
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // input dialog
  14. input::input(CWnd* pParent /*=NULL*/)
  15. : CDialog(input::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(input)
  18. m_number = _T("");
  19. m_jiguan = _T("");
  20. m_brings = 0;
  21. m_members = 0;
  22. //}}AFX_DATA_INIT
  23. focus = 0;
  24. }
  25. void input::DoDataExchange(CDataExchange* pDX)
  26. {
  27. CDialog::DoDataExchange(pDX);
  28. //{{AFX_DATA_MAP(input)
  29. DDX_Control(pDX, IDC_BTN_OK, m_ok);
  30. DDX_Text(pDX, IDC_EDIT1, m_number);
  31. DDX_Text(pDX, IDC_EDIT2, m_jiguan);
  32. DDX_Text(pDX, IDC_EDIT3, m_brings);
  33. DDX_Text(pDX, IDC_EDIT4, m_members);
  34. //}}AFX_DATA_MAP
  35. }
  36. BEGIN_MESSAGE_MAP(input, CDialog)
  37. //{{AFX_MSG_MAP(input)
  38. ON_BN_CLICKED(IDC_BTN_OK, OnBtnOk)
  39. ON_EN_KILLFOCUS(IDC_EDIT1, OnKillfocusEdit1)
  40. ON_EN_KILLFOCUS(IDC_EDIT2, OnKillfocusEdit2)
  41. ON_EN_SETFOCUS(IDC_EDIT1, OnSetfocusEdit1)
  42. ON_EN_SETFOCUS(IDC_EDIT2, OnSetfocusEdit2)
  43. ON_EN_KILLFOCUS(IDC_EDIT3, OnKillfocusEdit3)
  44. ON_EN_KILLFOCUS(IDC_EDIT4, OnKillfocusEdit4)
  45. ON_EN_CHANGE(IDC_EDIT4, OnChangeEdit4)
  46. //}}AFX_MSG_MAP
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. // input message handlers
  50. void input::OnBtnOk() 
  51. {
  52. // TODO: Add your control notification handler code here
  53. UpdateData();
  54. ofstream outf;
  55. outf.open("student.dat",ios::app);
  56. outf<<m_number <<" "<<m_jiguan<<" "<<m_brings<<" "<<m_members<<endl;
  57. outf.close();
  58. MessageBox("输入完毕");
  59. m_jiguan="";
  60. m_brings=0;
  61. m_number="";
  62. m_members=0;
  63. UpdateData(FALSE);
  64. CButton *pBtn;
  65. pBtn = (CButton*)GetDlgItem(IDC_BTN_OK);
  66. pBtn->EnableWindow(FALSE);
  67. }
  68. void input::ValidateData()
  69. {
  70.     UpdateData();
  71. if(!m_number.Compare(" ") || m_number.IsEmpty() || m_number.GetLength() !=9 )
  72. return;
  73. if(!m_jiguan.Compare(" ") || m_jiguan.IsEmpty())
  74. return;
  75. if(m_brings < 0)
  76. return;
  77. if(m_members < 1) 
  78.    return;
  79. CButton *pBtn;
  80. pBtn = (CButton*)GetDlgItem(IDC_BTN_OK);
  81. pBtn->EnableWindow();
  82. }
  83. void input::OnKillfocusEdit1() 
  84. {
  85. // TODO: Add your control notification handler code here
  86. UpdateData();
  87. if(!m_number.Compare(" ") || m_number.IsEmpty() || m_number.GetLength() !=9 )
  88. {
  89. SetDlgItemText(IDC_STATIC_SHOW_NUMBER,"输入错误");
  90. return;
  91. }
  92. SetDlgItemText(IDC_STATIC_SHOW_NUMBER,"正确");
  93. ValidateData();
  94. }
  95. void input::OnKillfocusEdit2() 
  96. {
  97. // TODO: Add your control notification handler code here
  98. UpdateData();
  99. if(!m_jiguan.Compare(" ") || m_jiguan.IsEmpty())
  100. {
  101. if(focus == 0)
  102.      SetDlgItemText(IDC_STATIC_SHOW_JIGUAN,"");
  103. else 
  104.     SetDlgItemText(IDC_STATIC_SHOW_JIGUAN,"输入错误");
  105. focus++;
  106. return;
  107. }
  108. SetDlgItemText(IDC_STATIC_SHOW_JIGUAN,"正确");
  109. ValidateData();
  110. }
  111. void input::OnSetfocusEdit1() 
  112. {
  113. // TODO: Add your control notification handler code here
  114. SetDlgItemText(IDC_STATIC_SHOW_NUMBER,"");
  115. }
  116. void input::OnSetfocusEdit2() 
  117. {
  118. // TODO: Add your control notification handler code here
  119. SetDlgItemText(IDC_STATIC_SHOW_JIGUAN,"");
  120. }
  121. void input::OnKillfocusEdit3() 
  122. {
  123. // TODO: Add your control notification handler code here
  124. ValidateData();
  125. }
  126. void input::OnKillfocusEdit4() 
  127. {
  128. // TODO: Add your control notification handler code here
  129. ValidateData();
  130. }
  131. void input::OnChangeEdit4() 
  132. {
  133. // TODO: If this is a RICHEDIT control, the control will not
  134. // send this notification unless you override the CDialog::OnInitDialog()
  135. // function and call CRichEditCtrl().SetEventMask()
  136. // with the ENM_CHANGE flag ORed into the mask.
  137. // TODO: Add your control notification handler code here
  138. ValidateData();
  139. }