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

金融证券系统

开发平台:

Visual C++

  1. // ExportOption.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ExportOption.h"
  5. #ifdef _DEBUG
  6. #define new DEBUG_NEW
  7. #undef THIS_FILE
  8. static char THIS_FILE[] = __FILE__;
  9. #endif
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CExportOption property page
  12. void CExportOption::StoreProfile( )
  13. {
  14. AfxGetApp()->WriteProfileInt( "exportoption", "timeall", m_bTimeAll );
  15. AfxGetApp()->WriteProfileInt( "exportoption", "timedefine", m_bTimeDefine );
  16. CSPTime( AfxGetApp()->WriteProfileInt( "exportoption", "tmbegin", m_tmBegin.GetTime() ) );
  17. CSPTime( AfxGetApp()->WriteProfileInt( "exportoption", "tmend", m_tmEnd.GetTime() ) );
  18. AfxGetApp()->WriteProfileInt( "exportoption", "kmonth", m_bKMonth );
  19. AfxGetApp()->WriteProfileInt( "exportoption", "kweek", m_bKWeek );
  20. AfxGetApp()->WriteProfileInt( "exportoption", "kday", m_bKDay );
  21. AfxGetApp()->WriteProfileInt( "exportoption", "kmin60", m_bKMin60 );
  22. AfxGetApp()->WriteProfileInt( "exportoption", "kmin30", m_bKMin30 );
  23. AfxGetApp()->WriteProfileInt( "exportoption", "kmin15", m_bKMin15 );
  24. AfxGetApp()->WriteProfileInt( "exportoption", "kmin5", m_bKMin5 );
  25. AfxGetApp()->WriteProfileInt( "exportoption", "noresumedr", m_bNoResumeDR );
  26. AfxGetApp()->WriteProfileInt( "exportoption", "resumedrup", m_bResumeDRUp );
  27. AfxGetApp()->WriteProfileInt( "exportoption", "resumedrdown", m_bResumeDRDown );
  28. AfxGetApp()->WriteProfileInt( "exportoption", "autoresumedr", m_bAutoResumeDR );
  29. }
  30. void CExportOption::LoadProfile( )
  31. {
  32. // Initial Data
  33. m_bTimeAll = FALSE;
  34. m_bTimeDefine = FALSE;
  35. m_tmBegin = CSPTime::GetCurrentTime();
  36. m_tmEnd = CSPTime::GetCurrentTime();
  37. m_bKDay = TRUE;
  38. m_bNoResumeDR = FALSE;
  39. m_bResumeDRUp = FALSE;
  40. m_bResumeDRDown = FALSE;
  41. m_tmAutoResumeDRBegin = CSPTime::GetCurrentTime();
  42. CSPTime sptime;
  43. if( sptime.FromStockTimeDay( AfxGetProfile().GetAutoResumeDRBegin() ) )
  44. m_tmAutoResumeDRBegin = sptime.GetTime();
  45. m_nAutoResumeDRLimit = AfxGetProfile().GetAutoResumeDRLimit();
  46. m_bTimeAll = AfxGetApp()->GetProfileInt( "exportoption", "timeall", m_bTimeAll );
  47. m_bTimeDefine = AfxGetApp()->GetProfileInt( "exportoption", "timedefine", m_bTimeDefine );
  48. m_tmBegin = CSPTime( AfxGetApp()->GetProfileInt( "exportoption", "tmend", m_tmEnd.GetTime() ) );
  49. m_tmBegin += CSPTimeSpan( 1, 0, 0, 0 );
  50. if( m_tmBegin > m_tmEnd ) m_tmBegin = m_tmEnd;
  51. m_bKMonth = AfxGetApp()->GetProfileInt( "exportoption", "kmonth", m_bKMonth );
  52. m_bKWeek = AfxGetApp()->GetProfileInt( "exportoption", "kweek", m_bKWeek );
  53. m_bKDay = AfxGetApp()->GetProfileInt( "exportoption", "kday", m_bKDay );
  54. m_bKMin60 = AfxGetApp()->GetProfileInt( "exportoption", "kmin60", m_bKMin60 );
  55. m_bKMin30 = AfxGetApp()->GetProfileInt( "exportoption", "kmin30", m_bKMin30 );
  56. m_bKMin15 = AfxGetApp()->GetProfileInt( "exportoption", "kmin15", m_bKMin15 );
  57. m_bKMin5 = AfxGetApp()->GetProfileInt( "exportoption", "kmin5", m_bKMin5 );
  58. m_bNoResumeDR = AfxGetApp()->GetProfileInt( "exportoption", "noresumedr", m_bNoResumeDR );
  59. m_bResumeDRUp = AfxGetApp()->GetProfileInt( "exportoption", "resumedrup", m_bResumeDRUp );
  60. m_bResumeDRDown = AfxGetApp()->GetProfileInt( "exportoption", "resumedrdown", m_bResumeDRDown );
  61. m_bAutoResumeDR = AfxGetApp()->GetProfileInt( "exportoption", "autoresumedr", m_bAutoResumeDR );
  62. }
  63. IMPLEMENT_DYNCREATE(CExportOption, CPropertyPageEx)
  64. CExportOption::CExportOption() : CPropertyPageEx(CExportOption::IDD)
  65. {
  66. //{{AFX_DATA_INIT(CExportOption)
  67. m_tmBegin = 0;
  68. m_tmEnd = 0;
  69. m_bKMonth = FALSE;
  70. m_bKWeek = FALSE;
  71. m_bKDay = FALSE;
  72. m_bKMin60 = FALSE;
  73. m_bKMin30 = FALSE;
  74. m_bKMin15 = FALSE;
  75. m_bKMin5 = FALSE;
  76. m_bAutoResumeDR = FALSE;
  77. m_tmAutoResumeDRBegin = 0;
  78. m_nAutoResumeDRLimit = 0;
  79. //}}AFX_DATA_INIT
  80. m_dwButtonFlags = PSWIZB_BACK | PSWIZB_NEXT;
  81. }
  82. CExportOption::CExportOption(UINT nIDCaption, UINT nIDTitle, UINT nIDSubTitle)
  83.  : CPropertyPageEx(CExportOption::IDD, nIDCaption, nIDTitle, nIDSubTitle)
  84. {
  85. m_tmBegin = 0;
  86. m_tmEnd = 0;
  87. m_bKMonth = FALSE;
  88. m_bKWeek = FALSE;
  89. m_bKDay = FALSE;
  90. m_bKMin60 = FALSE;
  91. m_bKMin30 = FALSE;
  92. m_bKMin15 = FALSE;
  93. m_bKMin5 = FALSE;
  94. m_bAutoResumeDR = FALSE;
  95. m_tmAutoResumeDRBegin = 0;
  96. m_nAutoResumeDRLimit = 0;
  97. m_dwButtonFlags = PSWIZB_BACK | PSWIZB_NEXT;
  98. }
  99. CExportOption::~CExportOption()
  100. {
  101. }
  102. void CExportOption::DoDataExchange(CDataExchange* pDX)
  103. {
  104. CPropertyPageEx::DoDataExchange(pDX);
  105. //{{AFX_DATA_MAP(CExportOption)
  106. DDX_Control(pDX, IDC_AUTORESUMEDR, m_btnAutoResumeDR);
  107. DDX_Control(pDX, IDC_TIME_AUTORESUMEDRBEGIN, m_ctrlTimeAutoResumeDRBegin);
  108. DDX_Control(pDX, IDC_AUTORESUMEDR_LIMIT, m_editAutoResumeDRLimit);
  109. DDX_Control(pDX, IDC_TIME_END, m_ctrlTimeEnd);
  110. DDX_Control(pDX, IDC_TIME_BEGIN, m_ctrlTimeBegin);
  111. DDX_DateTimeCtrl(pDX, IDC_TIME_BEGIN, m_tmBegin);
  112. DDX_DateTimeCtrl(pDX, IDC_TIME_END, m_tmEnd);
  113. DDX_Check(pDX, IDC_KMONTH, m_bKMonth);
  114. DDX_Check(pDX, IDC_KWEEK, m_bKWeek);
  115. DDX_Check(pDX, IDC_KDAY, m_bKDay);
  116. DDX_Check(pDX, IDC_KMIN60, m_bKMin60);
  117. DDX_Check(pDX, IDC_KMIN30, m_bKMin30);
  118. DDX_Check(pDX, IDC_KMIN15, m_bKMin15);
  119. DDX_Check(pDX, IDC_KMIN5, m_bKMin5);
  120. DDX_Check(pDX, IDC_AUTORESUMEDR, m_bAutoResumeDR);
  121. DDX_DateTimeCtrl(pDX, IDC_TIME_AUTORESUMEDRBEGIN, m_tmAutoResumeDRBegin);
  122. DDX_Text(pDX, IDC_AUTORESUMEDR_LIMIT, m_nAutoResumeDRLimit);
  123. //}}AFX_DATA_MAP
  124. }
  125. BEGIN_MESSAGE_MAP(CExportOption, CPropertyPageEx)
  126. //{{AFX_MSG_MAP(CExportOption)
  127. ON_BN_CLICKED(IDC_TIME_ALL, OnTimeAll)
  128. ON_BN_CLICKED(IDC_TIME_DEFINE, OnTimeDefine)
  129. ON_BN_CLICKED(IDC_NORESUMEDR, OnNoresumedr)
  130. ON_BN_CLICKED(IDC_RESUMEDRUP, OnResumedrup)
  131. ON_BN_CLICKED(IDC_RESUMEDRDOWN, OnResumedrdown)
  132. ON_BN_CLICKED(IDC_AUTORESUMEDR, OnAutoresumedr)
  133. //}}AFX_MSG_MAP
  134. END_MESSAGE_MAP()
  135. /////////////////////////////////////////////////////////////////////////////
  136. // CExportOption message handlers
  137. BOOL CExportOption::OnInitDialog() 
  138. {
  139. CPropertyPageEx::OnInitDialog();
  140. // TODO: Add extra initialization here
  141. LoadProfile( );
  142. UpdateData( FALSE );
  143. // select item
  144. int nCheckID = IDC_TIME_ALL;
  145. if( m_bTimeDefine )
  146. nCheckID = IDC_TIME_DEFINE;
  147. CheckRadioButton( IDC_TIME_ALL, IDC_TIME_DEFINE, nCheckID );
  148. m_ctrlTimeBegin.EnableWindow( m_bTimeDefine );
  149. m_ctrlTimeEnd.EnableWindow( m_bTimeDefine );
  150. // auto resume dr option
  151. nCheckID = IDC_NORESUMEDR;
  152. if( m_bResumeDRUp )
  153. nCheckID = IDC_RESUMEDRUP;
  154. else if( m_bResumeDRDown )
  155. nCheckID = IDC_RESUMEDRDOWN;
  156. CheckRadioButton( IDC_NORESUMEDR, IDC_RESUMEDRDOWN, nCheckID );
  157. m_btnAutoResumeDR.EnableWindow( m_bAutoResumeDR && IDC_NORESUMEDR != nCheckID );
  158. m_ctrlTimeAutoResumeDRBegin.EnableWindow( m_bAutoResumeDR && IDC_NORESUMEDR != nCheckID );
  159. m_editAutoResumeDRLimit.EnableWindow( m_bAutoResumeDR && IDC_NORESUMEDR != nCheckID );
  160. return TRUE;  // return TRUE unless you set the focus to a control
  161.               // EXCEPTION: OCX Property Pages should return FALSE
  162. }
  163. void CExportOption::OnTimeAll() 
  164. {
  165. // TODO: Add your control notification handler code here
  166. m_ctrlTimeBegin.EnableWindow( FALSE );
  167. m_ctrlTimeEnd.EnableWindow( FALSE );
  168. }
  169. void CExportOption::OnTimeDefine() 
  170. {
  171. // TODO: Add your control notification handler code here
  172. m_ctrlTimeBegin.EnableWindow( TRUE );
  173. m_ctrlTimeEnd.EnableWindow( TRUE );
  174. }
  175. void CExportOption::OnNoresumedr() 
  176. {
  177. // TODO: Add your control notification handler code here
  178. m_btnAutoResumeDR.EnableWindow( FALSE );
  179. m_ctrlTimeAutoResumeDRBegin.EnableWindow( FALSE );
  180. m_editAutoResumeDRLimit.EnableWindow( FALSE );
  181. }
  182. void CExportOption::OnResumedrup() 
  183. {
  184. // TODO: Add your control notification handler code here
  185. m_btnAutoResumeDR.EnableWindow( TRUE );
  186. m_ctrlTimeAutoResumeDRBegin.EnableWindow( TRUE );
  187. m_editAutoResumeDRLimit.EnableWindow( TRUE );
  188. }
  189. void CExportOption::OnResumedrdown() 
  190. {
  191. // TODO: Add your control notification handler code here
  192. m_btnAutoResumeDR.EnableWindow( TRUE );
  193. m_ctrlTimeAutoResumeDRBegin.EnableWindow( TRUE );
  194. m_editAutoResumeDRLimit.EnableWindow( TRUE );
  195. }
  196. void CExportOption::OnAutoresumedr() 
  197. {
  198. // TODO: Add your control notification handler code here
  199. int nCheck = m_btnAutoResumeDR.GetCheck();
  200. m_ctrlTimeAutoResumeDRBegin.EnableWindow( nCheck );
  201. m_editAutoResumeDRLimit.EnableWindow( nCheck );
  202. }
  203. BOOL CExportOption::OnSetActive() 
  204. {
  205. // TODO: Add your specialized code here and/or call the base class
  206. CPropertySheetEx * pSheet = DYNAMIC_DOWNCAST( CPropertySheetEx, GetParent() );
  207. if( pSheet )
  208. {
  209. pSheet->SetWizardButtons( m_dwButtonFlags );
  210. CWnd * pWnd = pSheet->GetDlgItem( ID_WIZNEXT );
  211. if( pWnd && ::IsWindow( pWnd->GetSafeHwnd() ) )
  212. {
  213. CString strTemp;
  214. strTemp.LoadString( IDS_PROPERTYSHEET_NEXT );
  215. pWnd->SetWindowText( strTemp );
  216. }
  217. }
  218. return CPropertyPageEx::OnSetActive();
  219. }
  220. LRESULT CExportOption::OnWizardBack() 
  221. {
  222. // TODO: Add your specialized code here and/or call the base class
  223. return CPropertyPageEx::OnWizardBack();
  224. }
  225. LRESULT CExportOption::OnWizardNext() 
  226. {
  227. // TODO: Add your specialized code here and/or call the base class
  228. UpdateData( );
  229. // Time Radio
  230. CButton * pbtn = (CButton *)GetDlgItem( IDC_TIME_ALL );
  231. if( pbtn ) m_bTimeAll = pbtn->GetCheck();
  232. pbtn = (CButton *)GetDlgItem( IDC_TIME_DEFINE );
  233. if( pbtn ) m_bTimeDefine = pbtn->GetCheck();
  234. if( !m_bTimeAll && !m_bTimeDefine )
  235. m_bTimeAll = TRUE;
  236. // Resume Radio
  237. pbtn = (CButton *)GetDlgItem( IDC_NORESUMEDR );
  238. if( pbtn ) m_bNoResumeDR = pbtn->GetCheck();
  239. pbtn = (CButton *)GetDlgItem( IDC_RESUMEDRUP );
  240. if( pbtn ) m_bResumeDRUp = pbtn->GetCheck();
  241. pbtn = (CButton *)GetDlgItem( IDC_RESUMEDRDOWN );
  242. if( pbtn ) m_bResumeDRDown = pbtn->GetCheck();
  243. if( !m_bNoResumeDR && !m_bResumeDRUp && !m_bResumeDRDown )
  244. m_bNoResumeDR = TRUE;
  245. // Store profile
  246. StoreProfile( );
  247. return CPropertyPageEx::OnWizardNext();
  248. }
  249. BOOL CExportOption::PreTranslateMessage(MSG* pMsg) 
  250. {
  251. // TODO: Add your specialized code here and/or call the base class
  252. if( WM_KEYDOWN == pMsg->message && VK_RETURN == pMsg->wParam )
  253. return TRUE;
  254. return CPropertyPageEx::PreTranslateMessage(pMsg);
  255. }