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

金融证券系统

开发平台:

Visual C++

  1. // CloseStrategyDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "CloseStrategyDlg.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CCloseStrategyDlg dialog
  12. CCloseStrategyDlg::CCloseStrategyDlg(CWnd* pParent /*=NULL*/)
  13. : CDialog(CCloseStrategyDlg::IDD, pParent)
  14. {
  15. //{{AFX_DATA_INIT(CCloseStrategyDlg)
  16. // NOTE: the ClassWizard will add member initialization here
  17. //}}AFX_DATA_INIT
  18. }
  19. POSITION CCloseStrategyDlg::GetFirstCloseStrategyPosition( )
  20. {
  21. return m_listCloseStrategy.GetHeadPosition();
  22. }
  23. CStrategy * CCloseStrategyDlg::GetNextCloseStrategy( POSITION &rPos )
  24. {
  25. return (CStrategy*)m_listCloseStrategy.GetNext(rPos);
  26. }
  27. void CCloseStrategyDlg::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CDialog::DoDataExchange(pDX);
  30. //{{AFX_DATA_MAP(CCloseStrategyDlg)
  31. DDX_Control(pDX, IDC_CLOSEALL, m_btnCloseAll);
  32. DDX_Control(pDX, IDCANCEL, m_btnCancel);
  33. DDX_Control(pDX, IDOK, m_btnOK);
  34. DDX_Control(pDX, IDC_STRATEGYLIST, m_listStrategy);
  35. //}}AFX_DATA_MAP
  36. }
  37. BEGIN_MESSAGE_MAP(CCloseStrategyDlg, CDialog)
  38. //{{AFX_MSG_MAP(CCloseStrategyDlg)
  39. ON_BN_CLICKED(IDC_CLOSEALL, OnCloseall)
  40. //}}AFX_MSG_MAP
  41. END_MESSAGE_MAP()
  42. /////////////////////////////////////////////////////////////////////////////
  43. // CCloseStrategyDlg message handlers
  44. BOOL CCloseStrategyDlg::OnInitDialog() 
  45. {
  46. CDialog::OnInitDialog();
  47. // TODO: Add extra initialization here
  48. m_listStrategy.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES );
  49. // set image lists
  50. m_SmallImageList.Create(IDB_STRATEGY, 16, 1, RGB(0, 255, 0));
  51. m_listStrategy.SetImageList(&m_SmallImageList, LVSIL_SMALL);
  52. // insert columns
  53. CString strTitle, strPathName;
  54. strTitle.LoadString( IDS_CLOSESTRATEGYDLG_TITLE );
  55. strPathName.LoadString( IDS_CLOSESTRATEGYDLG_PATHNAME );
  56. m_listStrategy.InsertColumn( 0, strTitle, LVCFMT_LEFT, 160, 0 );
  57. m_listStrategy.InsertColumn( 1, strPathName, LVCFMT_LEFT, 210, 1 );
  58. // insert items
  59. CStkUIApp * pApp = AfxGetStkUIApp();
  60. CStrategy  * pActiveStrategy =AfxGetActiveStrategy();
  61. if( pApp )
  62. {
  63. int count = 0;
  64. POSITION pos = pApp->GetFirstStrategyPosition( );
  65. while( NULL != pos )
  66. {
  67. CStrategy * pStrategy = pApp->GetNextStrategy( pos );
  68. int nItem = m_listStrategy.InsertItem( count, pStrategy->GetName(), 0 );
  69. m_listStrategy.SetItemText( nItem, 1, pStrategy->GetPathName() );
  70. m_listStrategy.SetItemData( nItem, DWORD(pStrategy) );
  71. if( pActiveStrategy == pStrategy )
  72. m_listStrategy.SetCheck( nItem );
  73. count ++;
  74. }
  75. }
  76. return TRUE;  // return TRUE unless you set the focus to a control
  77.               // EXCEPTION: OCX Property Pages should return FALSE
  78. }
  79. void CCloseStrategyDlg::OnOK() 
  80. {
  81. // TODO: Add extra validation here
  82. for( int i=0; i<m_listStrategy.GetItemCount( ); i++ )
  83. {
  84. ASSERT( m_listStrategy.GetItemData(i) );
  85. if( m_listStrategy.GetCheck(i) )
  86. m_listCloseStrategy.AddTail( (CStrategy *)m_listStrategy.GetItemData(i) );
  87. }
  88. CDialog::OnOK();
  89. }
  90. void CCloseStrategyDlg::OnCloseall() 
  91. {
  92. // TODO: Add your control notification handler code here
  93. for( int i=0; i<m_listStrategy.GetItemCount( ); i++ )
  94. {
  95. ASSERT( m_listStrategy.GetItemData(i) );
  96. m_listCloseStrategy.AddTail( (CStrategy *)m_listStrategy.GetItemData(i) );
  97. }
  98. CDialog::OnOK();
  99. }