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

金融证券系统

开发平台:

Visual C++

  1. // MADlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "MADlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CMADlg dialog
  12. CMADlg::CMADlg(CWnd* pParent, CMA * pMA)
  13. {
  14. CParamDlg::CParamDlg(CMADlg::IDD, pParent);
  15. //{{AFX_DATA_INIT(CMADlg)
  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_pMA = pMA;
  26. }
  27. void CMADlg::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CParamDlg::DoDataExchange(pDX);
  30. //{{AFX_DATA_MAP(CMADlg)
  31. DDX_Control(pDX, IDC_SHORT, m_cmbShort);
  32. DDX_Control(pDX, IDC_LONG, m_cmbLong);
  33. DDX_Control(pDX, IDC_DEADFORK, m_cmbDeadFork);
  34. DDX_Control(pDX, IDC_GOLDENFORK, m_cmbGoldenFork);
  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(CMADlg, CParamDlg)
  47. //{{AFX_MSG_MAP(CMADlg)
  48. ON_BN_CLICKED(IDC_DEFAULT, OnDefault)
  49. ON_BN_CLICKED(IDC_PARAMHELP, OnHelp)
  50. //}}AFX_MSG_MAP
  51. END_MESSAGE_MAP()
  52. /////////////////////////////////////////////////////////////////////////////
  53. // CMADlg message handlers
  54. BOOL CMADlg::OnInitDialog() 
  55. {
  56. CParamDlg::OnInitDialog();
  57. ASSERT( m_pMA );
  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 CMADlg::OnCancel() 
  64. {
  65. }
  66. void CMADlg::OnOK() 
  67. {
  68. // TODO: Add extra validation here
  69. if( !RefreshData( TRUE ) )
  70. m_pMA->SetDefaultParameters( );
  71. CParamDlg::OnOK();
  72. }
  73. void CMADlg::OnDefault() 
  74. {
  75. // TODO: Add your control notification handler code here
  76. m_pMA->SetDefaultParameters( );
  77. RefreshData( FALSE );
  78. }
  79. void CMADlg::OnHelp() 
  80. {
  81. ParamHelp( STT_MA );
  82. }
  83. BOOL CMADlg::RefreshData( BOOL bSaveAndValidate )
  84. {
  85. if( !m_pMA->IsValidParameters() )
  86. m_pMA->SetDefaultParameters();
  87. if( bSaveAndValidate )
  88. {
  89. UpdateData( TRUE );
  90. CButton * pbtn = (CButton *)GetDlgItem(IDC_EXPMA);
  91. if( pbtn && pbtn->GetCheck() )
  92. m_pMA->m_nType = CMA::typeEXPMA;
  93. else
  94. m_pMA->m_nType = CMA::typeMA;
  95. m_pMA->m_adwMADays.RemoveAll();
  96. if( m_bMA1 ) m_pMA->m_adwMADays.Add( m_nDays1 );
  97. if( m_bMA2 ) m_pMA->m_adwMADays.Add( m_nDays2 );
  98. if( m_bMA3 ) m_pMA->m_adwMADays.Add( m_nDays3 );
  99. if( m_bMA4 ) m_pMA->m_adwMADays.Add( m_nDays4 );
  100. m_pMA->m_itsGoldenFork = m_cmbGoldenFork.GetSelect( );
  101. m_pMA->m_itsDeadFork = m_cmbDeadFork.GetSelect( );
  102. m_pMA->m_itsLong = m_cmbLong.GetSelect( );
  103. m_pMA->m_itsShort = m_cmbShort.GetSelect( );
  104. return m_pMA->IsValidParameters();
  105. }
  106. else
  107. {
  108. m_staticName.SetWindowText( AfxGetSTTFullName(STT_MA) );
  109. CheckRadioButton( IDC_STDMA, IDC_EXPMA, CMA::typeEXPMA == m_pMA->m_nType ? IDC_EXPMA : IDC_STDMA );
  110. m_bMA1 = m_pMA->m_adwMADays.GetSize() >= 1;
  111. m_bMA2 = m_pMA->m_adwMADays.GetSize() >= 2;
  112. m_bMA3 = m_pMA->m_adwMADays.GetSize() >= 3;
  113. m_bMA4 = m_pMA->m_adwMADays.GetSize() >= 4;
  114. if( m_bMA1 ) m_nDays1 = m_pMA->m_adwMADays[0];
  115. if( m_bMA2 ) m_nDays2 = m_pMA->m_adwMADays[1];
  116. if( m_bMA3 ) m_nDays3 = m_pMA->m_adwMADays[2];
  117. if( m_bMA4 ) m_nDays4 = m_pMA->m_adwMADays[3];
  118. m_cmbGoldenFork.ResetAndSelect( m_pMA->m_itsGoldenFork );
  119. m_cmbDeadFork.ResetAndSelect( m_pMA->m_itsDeadFork );
  120. m_cmbLong.ResetAndSelect( m_pMA->m_itsLong );
  121. m_cmbShort.ResetAndSelect( m_pMA->m_itsShort );
  122. UpdateData( FALSE );
  123. }
  124. return TRUE;
  125. }