EditKDATADlg.cpp
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:3k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. // EditKDATADlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "EditKDATADlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CEditKDATADlg dialog
  12. CEditKDATADlg::CEditKDATADlg(CWnd* pParent /*=NULL*/)
  13. : CDialog(CEditKDATADlg::IDD, pParent)
  14. {
  15. //{{AFX_DATA_INIT(CEditKDATADlg)
  16. m_tmDate = 0;
  17. m_strOpen = _T("");
  18. m_strHigh = _T("");
  19. m_strLow = _T("");
  20. m_strClose = _T("");
  21. m_dwVolume = 0;
  22. m_dwAmount = 0;
  23. //}}AFX_DATA_INIT
  24. m_tmDate = CSPTime::GetCurrentTime();
  25. memset( &m_kd, 0, sizeof(m_kd) );
  26. }
  27. void CEditKDATADlg::SetKDATA( KDATA kd, int nKType )
  28. {
  29. m_kd = kd;
  30. m_nKType = nKType;
  31. CSPTime sptime;
  32. if( sptime.FromStockTime( kd.m_date, CKData::IsDayOrMin(m_nKType) ) )
  33. m_tmDate = CSPTime( sptime.GetTime() );
  34. m_strOpen.Format( "%.3f", kd.m_fOpen );
  35. m_strHigh.Format( "%.3f", kd.m_fHigh );
  36. m_strLow.Format( "%.3f", kd.m_fLow );
  37. m_strClose.Format( "%.3f", kd.m_fClose );
  38. m_dwVolume = (DWORD)(kd.m_fVolume/100);
  39. m_dwAmount = (DWORD)(kd.m_fAmount/1000);
  40. }
  41. KDATA CEditKDATADlg::GetKDATA( )
  42. {
  43. return m_kd;
  44. }
  45. void CEditKDATADlg::DoDataExchange(CDataExchange* pDX)
  46. {
  47. CDialog::DoDataExchange(pDX);
  48. //{{AFX_DATA_MAP(CEditKDATADlg)
  49. DDX_Control(pDX, IDCANCEL, m_btnCancel);
  50. DDX_Control(pDX, IDOK, m_btnOK);
  51. DDX_DateTimeCtrl(pDX, IDC_DATE, m_tmDate);
  52. DDX_Text(pDX, IDC_OPEN, m_strOpen);
  53. DDX_Text(pDX, IDC_HIGH, m_strHigh);
  54. DDX_Text(pDX, IDC_LOW, m_strLow);
  55. DDX_Text(pDX, IDC_CLOSE, m_strClose);
  56. DDX_Text(pDX, IDC_VOLUME, m_dwVolume);
  57. DDX_Text(pDX, IDC_AMOUNT, m_dwAmount);
  58. //}}AFX_DATA_MAP
  59. }
  60. BEGIN_MESSAGE_MAP(CEditKDATADlg, CDialog)
  61. //{{AFX_MSG_MAP(CEditKDATADlg)
  62. //}}AFX_MSG_MAP
  63. END_MESSAGE_MAP()
  64. /////////////////////////////////////////////////////////////////////////////
  65. // CEditKDATADlg message handlers
  66. BOOL CEditKDATADlg::OnInitDialog() 
  67. {
  68. CDialog::OnInitDialog();
  69. // TODO: Add extra initialization here
  70. return TRUE;  // return TRUE unless you set the focus to a control
  71.               // EXCEPTION: OCX Property Pages should return FALSE
  72. }
  73. void CEditKDATADlg::OnOK() 
  74. {
  75. // TODO: Add extra validation here
  76. UpdateData( );
  77. if( !IsNumber( m_strOpen, FALSE ) || !IsNumber( m_strHigh, FALSE )
  78. || !IsNumber( m_strLow, FALSE ) || !IsNumber( m_strClose, FALSE ) )
  79. {
  80. AfxMessageBox( IDS_EDITKDATA_NOTNUMBER, MB_OK|MB_ICONINFORMATION );
  81. return;
  82. }
  83. CSPTime sptime( m_tmDate.GetTime() );
  84. m_kd.m_date = sptime.ToStockTime( CKData::IsDayOrMin(m_nKType) );
  85. m_kd.m_fOpen = (float)atof(m_strOpen);
  86. m_kd.m_fHigh = (float)atof(m_strHigh);
  87. m_kd.m_fLow = (float)atof(m_strLow);
  88. m_kd.m_fClose = (float)atof(m_strClose);
  89. m_kd.m_fVolume = (float)m_dwVolume*100;
  90. m_kd.m_fAmount = (float)m_dwAmount*1000;
  91. CDialog::OnOK();
  92. }