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

金融证券系统

开发平台:

Visual C++

  1. // SimuAddStockDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "SimuAddStockDlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CSimuAddStockDlg dialog
  12. CSimuAddStockDlg::CSimuAddStockDlg(CWnd* pParent /*=NULL*/)
  13. : CDialog(CSimuAddStockDlg::IDD, pParent)
  14. {
  15. //{{AFX_DATA_INIT(CSimuAddStockDlg)
  16. m_strValue = _T("");
  17. m_strPrice = _T("");
  18. //}}AFX_DATA_INIT
  19. m_pStrategy = NULL;
  20. m_nMode = modeAddStock;
  21. m_dValue = 0;
  22. }
  23. void CSimuAddStockDlg::SetStrategy( CStrategy * pStrategy )
  24. {
  25. m_pStrategy = pStrategy;
  26. }
  27. /***
  28. modeAddStock 表示该对话框完成添加拥有股票的功能
  29. modeModifiedCash 表示该对话框完成修改拥有现金的功能
  30. */
  31. void CSimuAddStockDlg::SetMode( int nMode, CString sCode, double dValue, double dPrice )
  32. {
  33. m_nMode = nMode;
  34. m_strStockCode = sCode;
  35. m_dValue = dValue;
  36. m_dPrice = dPrice;
  37. }
  38. CString CSimuAddStockDlg::GetStockCode( )
  39. {
  40. return m_strStockCode;
  41. }
  42. double CSimuAddStockDlg::GetValue( )
  43. {
  44. return m_dValue;
  45. }
  46. double CSimuAddStockDlg::GetPrice( )
  47. {
  48. return m_dPrice;
  49. }
  50. void CSimuAddStockDlg::DoDataExchange(CDataExchange* pDX)
  51. {
  52. CDialog::DoDataExchange(pDX);
  53. //{{AFX_DATA_MAP(CSimuAddStockDlg)
  54. DDX_Control(pDX, IDCANCEL, m_btnCancel);
  55. DDX_Control(pDX, IDOK, m_btnOK);
  56. DDX_Control(pDX, IDC_STATICPRICE, m_staticPrice);
  57. DDX_Control(pDX, IDC_PRICE, m_editPrice);
  58. DDX_Control(pDX, IDC_STATICVALUE, m_staticValue);
  59. DDX_Control(pDX, IDC_STATICSTOCK, m_staticStock);
  60. DDX_Control(pDX, IDC_STOCK, m_comboStock);
  61. DDX_Text(pDX, IDC_VALUE, m_strValue);
  62. DDX_Text(pDX, IDC_PRICE, m_strPrice);
  63. //}}AFX_DATA_MAP
  64. }
  65. BEGIN_MESSAGE_MAP(CSimuAddStockDlg, CDialog)
  66. //{{AFX_MSG_MAP(CSimuAddStockDlg)
  67. //}}AFX_MSG_MAP
  68. END_MESSAGE_MAP()
  69. /////////////////////////////////////////////////////////////////////////////
  70. // CSimuAddStockDlg message handlers
  71. BOOL CSimuAddStockDlg::OnInitDialog() 
  72. {
  73. CDialog::OnInitDialog();
  74. ASSERT( m_pStrategy );
  75. m_comboStock.InitStocks( m_pStrategy->GetStocks(), FALSE, FALSE, FALSE );
  76. m_comboStock.SetAutoHide( FALSE );
  77. m_comboStock.SetCurSel( 0 );
  78. if( modeAddStock == m_nMode )
  79. {
  80. m_strValue.Format( "%u", 0 );
  81. }
  82. else if( modeModifiedCash == m_nMode )
  83. {
  84. m_comboStock.ShowWindow( SW_HIDE );
  85. m_staticStock.ShowWindow( SW_HIDE );
  86. m_editPrice.ShowWindow( SW_HIDE );
  87. m_staticPrice.ShowWindow( SW_HIDE );
  88. CString string;
  89. string.LoadString( IDS_SIMUADDSTOCK_CASH );
  90. m_staticValue.SetWindowText( string );
  91. string.LoadString( IDS_SIMUADDSTOCK_MODCASH );
  92. SetWindowText( string );
  93. m_strValue.Format( "%.2f", m_dValue );
  94. }
  95. UpdateData( FALSE );
  96. return TRUE;  // return TRUE unless you set the focus to a control
  97.               // EXCEPTION: OCX Property Pages should return FALSE
  98. }
  99. void CSimuAddStockDlg::OnOK() 
  100. {
  101. // TODO: Add extra validation here
  102. UpdateData( );
  103. if( !IsNumber(m_strValue,FALSE) )
  104. {
  105. AfxMessageBox( IDS_SIMUADDOP_NOTNUMBER, MB_OK|MB_ICONINFORMATION );
  106. return;
  107. }
  108. m_dValue = atof(m_strValue);
  109. if( modeAddStock == m_nMode )
  110. {
  111. m_strStockCode = m_comboStock.GetSelectedStockCode();
  112. if( !IsNumber(m_strPrice,FALSE) )
  113. {
  114. AfxMessageBox( IDS_SIMUADDOP_NOTNUMBER, MB_OK|MB_ICONINFORMATION );
  115. return;
  116. }
  117. m_dPrice = atof(m_strPrice);
  118. }
  119. CDialog::OnOK();
  120. }