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

金融证券系统

开发平台:

Visual C++

  1. // RSIDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "RSIDlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CRSIDlg dialog
  12. CRSIDlg::CRSIDlg(CWnd* pParent, CRSI * pRSI )
  13. {
  14. CParamDlg::CParamDlg(CRSIDlg::IDD, pParent);
  15. //{{AFX_DATA_INIT(CRSIDlg)
  16. m_nDays1 = 0;
  17. m_nDays2 = 0;
  18. //}}AFX_DATA_INIT
  19. m_pRSI = pRSI;
  20. }
  21. void CRSIDlg::DoDataExchange(CDataExchange* pDX)
  22. {
  23. CParamDlg::DoDataExchange(pDX);
  24. //{{AFX_DATA_MAP(CRSIDlg)
  25. DDX_Control(pDX, IDC_SOLD, m_cmbSold);
  26. DDX_Control(pDX, IDC_DEADFORK, m_cmbDeadFork);
  27. DDX_Control(pDX, IDC_GOLDENFORK, m_cmbGoldenFork);
  28. DDX_Control(pDX, IDC_STATIC_NAME, m_staticName);
  29. DDX_Text(pDX, IDC_DAYS1, m_nDays1);
  30. DDX_Text(pDX, IDC_DAYS2, m_nDays2);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CRSIDlg, CParamDlg)
  34. //{{AFX_MSG_MAP(CRSIDlg)
  35. ON_BN_CLICKED(IDC_DEFAULT, OnDefault)
  36. ON_BN_CLICKED(IDC_PARAMHELP, OnHelp)
  37. //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CRSIDlg message handlers
  41. BOOL CRSIDlg::OnInitDialog() 
  42. {
  43. CParamDlg::OnInitDialog();
  44. ASSERT( m_pRSI );
  45. // TODO: Add extra initialization here
  46. RefreshData( FALSE );
  47. return TRUE;  // return TRUE unless you set the focus to a control
  48.               // EXCEPTION: OCX Property Pages should return FALSE
  49. }
  50. void CRSIDlg::OnCancel() 
  51. {
  52. }
  53. void CRSIDlg::OnOK() 
  54. {
  55. // TODO: Add extra validation here
  56. if( !RefreshData( TRUE ) )
  57. m_pRSI->SetDefaultParameters( );
  58. CParamDlg::OnOK();
  59. }
  60. void CRSIDlg::OnDefault() 
  61. {
  62. // TODO: Add your control notification handler code here
  63. m_pRSI->SetDefaultParameters( );
  64. RefreshData( FALSE );
  65. }
  66. void CRSIDlg::OnHelp() 
  67. {
  68. ParamHelp( STT_RSI );
  69. }
  70. BOOL CRSIDlg::RefreshData( BOOL bSaveAndValidate )
  71. {
  72. if( !m_pRSI->IsValidParameters() )
  73. m_pRSI->SetDefaultParameters();
  74. if( bSaveAndValidate )
  75. {
  76. UpdateData( TRUE );
  77. m_pRSI->m_adwDays.RemoveAll();
  78. if( m_nDays1 > 0 ) m_pRSI->m_adwDays.Add( m_nDays1 );
  79. if( m_nDays2 > 0 ) m_pRSI->m_adwDays.Add( m_nDays2 );
  80. m_pRSI->m_itsGoldenFork = m_cmbGoldenFork.GetSelect();
  81. m_pRSI->m_itsDeadFork = m_cmbDeadFork.GetSelect();
  82. m_pRSI->m_itsSold = m_cmbSold.GetSelect();
  83. return m_pRSI->IsValidParameters();
  84. }
  85. else
  86. {
  87. m_staticName.SetWindowText( AfxGetSTTFullName(STT_RSI) );
  88. m_nDays1 = m_nDays2 = 0;
  89. if( m_pRSI->m_adwDays.GetSize() > 0 ) m_nDays1 = m_pRSI->m_adwDays.ElementAt(0);
  90. if( m_pRSI->m_adwDays.GetSize() > 1 ) m_nDays2 = m_pRSI->m_adwDays.ElementAt(1);
  91. m_cmbGoldenFork.ResetAndSelect( m_pRSI->m_itsGoldenFork );
  92. m_cmbDeadFork.ResetAndSelect( m_pRSI->m_itsDeadFork );
  93. m_cmbSold.ResetAndSelect( m_pRSI->m_itsSold );
  94. UpdateData( FALSE );
  95. }
  96. return TRUE;
  97. }