DialogRecord.cpp
上传用户:xiaoke98
上传日期:2014-06-29
资源大小:5718k
文件大小:5k
源码类别:

家庭/个人应用

开发平台:

Visual C++

  1. // DialogRecord.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "HomeFinanceManager.h"
  5. #include "DialogRecord.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CDialogRecord dialog
  13. CDialogRecord::CDialogRecord(CWnd* pParent /*=NULL*/)
  14. : CDialog(CDialogRecord::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CDialogRecord)
  17. m_strUser = _T("");
  18. m_strClass = _T("");
  19. m_timeRecord = 0;
  20. m_strID = _T("");
  21. m_strRemark = _T("");
  22. m_strSum = _T("");
  23. //}}AFX_DATA_INIT
  24. m_bIsMoneyIn = false;
  25. }
  26. void CDialogRecord::DoDataExchange(CDataExchange* pDX)
  27. {
  28. CDialog::DoDataExchange(pDX);
  29. //{{AFX_DATA_MAP(CDialogRecord)
  30. DDX_Control(pDX, IDC_UPDATERECORD, m_btnUpdateRecord);
  31. DDX_Control(pDX, IDC_DELRECORD, m_btnDelRecord);
  32. DDX_Text(pDX, IDC_OPERATOR, m_strUser);
  33. DDX_CBString(pDX, IDC_RECORD_CLASS, m_strClass);
  34. DDX_DateTimeCtrl(pDX, IDC_RECORD_DATE, m_timeRecord);
  35. DDX_Text(pDX, IDC_RECORD_ID, m_strID);
  36. DDX_Text(pDX, IDC_RECORD_REMARK, m_strRemark);
  37. DDX_Text(pDX, IDC_RECORD_SUM, m_strSum);
  38. //}}AFX_DATA_MAP
  39. }
  40. BEGIN_MESSAGE_MAP(CDialogRecord, CDialog)
  41. //{{AFX_MSG_MAP(CDialogRecord)
  42. ON_BN_CLICKED(IDC_DELRECORD, OnDelrecord)
  43. ON_BN_CLICKED(IDC_UPDATERECORD, OnUpdaterecord)
  44. ON_WM_ERASEBKGND() 
  45. ON_WM_CTLCOLOR()
  46. //}}AFX_MSG_MAP
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CDialogRecord message handlers
  50. BOOL CDialogRecord::OnInitDialog()
  51. {
  52. CDialog::OnInitDialog();
  53. CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_RECORD_CLASS);
  54. pComboBox->Clear();
  55. for(int i = 0; i < m_ClassInfo.m_iClassNum; i++)
  56. {
  57. pComboBox->InsertString(-1, m_ClassInfo.m_Classes[i]);
  58. }
  59. if(m_bIsMoneyIn)
  60. {
  61. SetWindowText("收入记录窗口");
  62. }
  63. else
  64. {
  65. SetWindowText("支出记录窗口");
  66. }
  67. return TRUE;
  68. }
  69. //---------------------------------------------------------------------------
  70. void CDialogRecord::setRecordInfo(char* strID, 
  71. char* strSum, 
  72. char* strOperator, 
  73. char* strClass, 
  74. char* strDate,
  75. char* strRemark,
  76. CSysDataStruct::CClassInfo& ClassInfo)
  77. {
  78. m_strClass = CString(strClass);
  79. m_strID = CString(strID);
  80. m_strUser= CString(strOperator);
  81. m_strRemark = CString(strRemark);
  82. m_strSum = CString(strSum);
  83. int iYear, iMonth, iDay;
  84. char strTemp[100];
  85. strcpy(strTemp, strDate);
  86. char* pChar = strTemp;
  87. while((*pChar++) != '-') {};
  88. *(--pChar) = '';
  89. iYear = atoi(strDate);
  90.     char* pcMonth = ++pChar;
  91. while((*pChar++) != '-') {};
  92. *(--pChar) = '';
  93. iMonth = atoi(pcMonth);
  94. char* pcDay = ++pChar;
  95. iDay = atoi(pcDay);
  96. pChar = 0;
  97. CTime TempTime(iYear, iMonth, iDay, 0, 0, 0);
  98. m_timeRecord = TempTime;
  99. m_ClassInfo.m_iClassNum = ClassInfo.m_iClassNum;
  100. for(int i = 0; i < m_ClassInfo.m_iClassNum; i++)
  101. {
  102. m_ClassInfo.m_Classes[i] = ClassInfo.m_Classes[i];
  103. }
  104. }
  105. //---------------------------------------------------------------------------
  106. void CDialogRecord::IsMoneyIn(bool bValue)
  107. {
  108. m_bIsMoneyIn = bValue;
  109. }
  110. //---------------------------------------------------------------------------
  111. void CDialogRecord::OnDelrecord() 
  112. {
  113. // TODO: Add your control notification handler code here
  114. UpdateData(FALSE);
  115. if(m_bIsMoneyIn)
  116. {
  117. int iID = atoi(m_strID);
  118. gDBOperator.DeleteFinanceIn(iID);
  119. }
  120. else
  121. {
  122. int iID = atoi(m_strID);
  123. gDBOperator.DeleteFinanceOut(iID);
  124. }
  125. }
  126. //---------------------------------------------------------------------------
  127. void CDialogRecord::OnUpdaterecord() 
  128. {
  129. // TODO: Add your control notification handler code here
  130. this->UpdateData(TRUE);
  131. CString strDate;
  132. int iYear = m_timeRecord.GetYear();
  133. int iMonth = m_timeRecord.GetMonth();
  134. int iDay = m_timeRecord.GetDay();
  135. int iID = atoi(m_strID.GetBuffer(0));
  136. strDate.Format("%d-%d-%d", iYear, iMonth, iDay);
  137. gDBOperator.UpdateRecord(iID, m_strSum, m_strClass, strDate, m_strRemark, !m_bIsMoneyIn);
  138. }
  139. //---------------------------------------------------------------------------
  140. BOOL CDialogRecord::OnEraseBkgnd( CDC* pDC )
  141. {
  142. RECT rcClient;
  143. this->GetClientRect(&rcClient);
  144. HBRUSH hOldBrush;
  145. HBRUSH hBrush = ::CreateSolidBrush(RGB(213, 247, 209));
  146. hOldBrush = (HBRUSH)pDC->SelectObject(hBrush);
  147. pDC->Rectangle(&rcClient);
  148. pDC->SelectObject(hOldBrush);
  149. ::DeleteObject(hBrush);
  150. return TRUE;
  151. }
  152. //---------------------------------------------------------------------------
  153. HBRUSH CDialogRecord::OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  154. {
  155. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  156. //改变控件的颜色
  157. if(nCtlColor == CTLCOLOR_STATIC)
  158. {
  159. pDC->SetBkMode(TRANSPARENT);
  160. pDC->SetTextColor(RGB(0,0,0));
  161. LOGBRUSH  logBrush;
  162. logBrush.lbStyle = BS_HOLLOW;
  163. hbr = CreateBrushIndirect(&logBrush);
  164. }
  165. if(nCtlColor == CTLCOLOR_EDIT)
  166. {
  167. pDC->SetTextColor(RGB(255,0,0));//字体色
  168. //pDC->SetBkColor(RGB(170, 243, 162));
  169. }
  170. return hbr;
  171. }