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

金融证券系统

开发平台:

Visual C++

  1. // VOLUMEDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "VOLUMEDlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CVOLUMEDlg dialog
  12. CVOLUMEDlg::CVOLUMEDlg(CWnd* pParent, CVOLUME * pVOLUME )
  13. {
  14. CParamDlg::CParamDlg(CVOLUMEDlg::IDD, pParent);
  15. //{{AFX_DATA_INIT(CVOLUMEDlg)
  16. m_bMA1 = FALSE;
  17. m_bMA2 = FALSE;
  18. m_bMA3 = FALSE;
  19. m_bMA4 = FALSE;
  20. m_nDays1 = 0;
  21. m_nDays2 = 0;
  22. m_nDays3 = 0;
  23. m_nDays4 = 0;
  24. //}}AFX_DATA_INIT
  25. m_pVOLUME = pVOLUME;
  26. }
  27. void CVOLUMEDlg::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CParamDlg::DoDataExchange(pDX);
  30. //{{AFX_DATA_MAP(CVOLUMEDlg)
  31. DDX_Control(pDX, IDC_SHORT, m_cmbShort);
  32. DDX_Control(pDX, IDC_LONG, m_cmbLong);
  33. DDX_Control(pDX, IDC_DEVIATEONTOP, m_cmbDeviateOnTop);
  34. DDX_Control(pDX, IDC_DEVIATEONBOTTOM, m_cmbDeviateOnBottom);
  35. DDX_Control(pDX, IDC_STATIC_NAME, m_staticName);
  36. DDX_Check(pDX, IDC_MA1, m_bMA1);
  37. DDX_Check(pDX, IDC_MA2, m_bMA2);
  38. DDX_Check(pDX, IDC_MA3, m_bMA3);
  39. DDX_Check(pDX, IDC_MA4, m_bMA4);
  40. DDX_Text(pDX, IDC_DAYS1, m_nDays1);
  41. DDX_Text(pDX, IDC_DAYS2, m_nDays2);
  42. DDX_Text(pDX, IDC_DAYS3, m_nDays3);
  43. DDX_Text(pDX, IDC_DAYS4, m_nDays4);
  44. //}}AFX_DATA_MAP
  45. }
  46. BEGIN_MESSAGE_MAP(CVOLUMEDlg, CParamDlg)
  47. //{{AFX_MSG_MAP(CVOLUMEDlg)
  48. ON_BN_CLICKED(IDC_DEFAULT, OnDefault)
  49. ON_BN_CLICKED(IDC_PARAMHELP, OnHelp)
  50. //}}AFX_MSG_MAP
  51. END_MESSAGE_MAP()
  52. /////////////////////////////////////////////////////////////////////////////
  53. // CVOLUMEDlg message handlers
  54. BOOL CVOLUMEDlg::OnInitDialog() 
  55. {
  56. CParamDlg::OnInitDialog();
  57. ASSERT( m_pVOLUME );
  58. // TODO: Add extra initialization here
  59. RefreshData( FALSE );
  60. return TRUE;  // return TRUE unless you set the focus to a control
  61.               // EXCEPTION: OCX Property Pages should return FALSE
  62. }
  63. void CVOLUMEDlg::OnCancel() 
  64. {
  65. }
  66. void CVOLUMEDlg::OnOK() 
  67. {
  68. // TODO: Add extra validation here
  69. if( !RefreshData( TRUE ) )
  70. m_pVOLUME->SetDefaultParameters( );
  71. CParamDlg::OnOK();
  72. }
  73. void CVOLUMEDlg::OnDefault() 
  74. {
  75. // TODO: Add your control notification handler code here
  76. m_pVOLUME->SetDefaultParameters( );
  77. RefreshData( FALSE );
  78. }
  79. void CVOLUMEDlg::OnHelp() 
  80. {
  81. ParamHelp( STT_VOLUME );
  82. }
  83. BOOL CVOLUMEDlg::RefreshData( BOOL bSaveAndValidate )
  84. {
  85. if( !m_pVOLUME->IsValidParameters() )
  86. m_pVOLUME->SetDefaultParameters();
  87. if( bSaveAndValidate )
  88. {
  89. UpdateData( TRUE );
  90. m_pVOLUME->m_adwMADays.RemoveAll();
  91. if( m_bMA1 ) m_pVOLUME->m_adwMADays.Add( m_nDays1 );
  92. if( m_bMA2 ) m_pVOLUME->m_adwMADays.Add( m_nDays2 );
  93. if( m_bMA3 ) m_pVOLUME->m_adwMADays.Add( m_nDays3 );
  94. if( m_bMA4 ) m_pVOLUME->m_adwMADays.Add( m_nDays4 );
  95. m_pVOLUME->m_itsDeviateOnBottom = m_cmbDeviateOnBottom.GetSelect( );
  96. m_pVOLUME->m_itsDeviateOnTop = m_cmbDeviateOnTop.GetSelect( );
  97. m_pVOLUME->m_itsLong = m_cmbLong.GetSelect( );
  98. m_pVOLUME->m_itsShort = m_cmbShort.GetSelect( );
  99. return m_pVOLUME->IsValidParameters();
  100. }
  101. else
  102. {
  103. m_staticName.SetWindowText( AfxGetSTTFullName(STT_VOLUME) );
  104. m_bMA1 = m_pVOLUME->m_adwMADays.GetSize() >= 1;
  105. m_bMA2 = m_pVOLUME->m_adwMADays.GetSize() >= 2;
  106. m_bMA3 = m_pVOLUME->m_adwMADays.GetSize() >= 3;
  107. m_bMA4 = m_pVOLUME->m_adwMADays.GetSize() >= 4;
  108. if( m_bMA1 ) m_nDays1 = m_pVOLUME->m_adwMADays[0];
  109. if( m_bMA2 ) m_nDays2 = m_pVOLUME->m_adwMADays[1];
  110. if( m_bMA3 ) m_nDays3 = m_pVOLUME->m_adwMADays[2];
  111. if( m_bMA4 ) m_nDays4 = m_pVOLUME->m_adwMADays[3];
  112. m_cmbDeviateOnBottom.ResetAndSelect( m_pVOLUME->m_itsDeviateOnBottom );
  113. m_cmbDeviateOnTop.ResetAndSelect( m_pVOLUME->m_itsDeviateOnTop );
  114. m_cmbLong.ResetAndSelect( m_pVOLUME->m_itsLong );
  115. m_cmbShort.ResetAndSelect( m_pVOLUME->m_itsShort );
  116. UpdateData( FALSE );
  117. }
  118. return TRUE;
  119. }