MainFrm.cpp
上传用户:kkzhu_0
上传日期:2007-01-05
资源大小:214k
文件大小:20k
源码类别:

棋牌游戏

开发平台:

Visual C++

  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //
  3. #include "stdafx.h"
  4. #ifdef _DEBUG
  5. #define new DEBUG_NEW
  6. #undef THIS_FILE
  7. static char THIS_FILE[] = __FILE__;
  8. #endif
  9. CFiveApp theApp;
  10. /////////////////////////////////////////////////////////////////////////////
  11. // CMainFrame
  12. static UINT BASED_CODE indicators[] =
  13. {
  14. ID_SEPARATOR,           // status line indicator
  15. // ID_INDICATOR_CAPS,
  16. // ID_INDICATOR_NUM,
  17. // ID_INDICATOR_SCRL,
  18. ID_JINGDU,
  19. ID_THREAD_COUNT,
  20.     ID_MEMORY_COUNT,
  21. ID_SEPARATOR,           // status line indicator
  22. };
  23. static UINT BASED_CODE playId[] =
  24. {       
  25.     ID_BUTTON_HUI,
  26. ID_BUTTON_DIN,
  27. ID_BUTTON_QIAN,
  28. ID_BUTTON_XIA,
  29. ID_BUTTON_JIN,
  30. ID_BUTTON_KILL,
  31.     ID_SEPARATOR,           // status line indicator
  32. ID_SEPARATOR,
  33. IDC_STEPBOX,
  34. };
  35. static UINT BASED_CODE mainId[] =
  36. {
  37. ID_FILE_NEW,
  38.     ID_FILE_OPEN,
  39. ID_FILE_SAVE,
  40. ID_SEPARATOR,           // status line indicator
  41. ID_APP_ABOUT,
  42. };
  43. IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
  44. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  45. //{{AFX_MSG_MAP(CMainFrame)
  46. ON_WM_CREATE()
  47. ON_WM_CLOSE()
  48.     ON_CBN_SETFOCUS( IDC_STEPBOX,OnStepBox )
  49.     ON_CBN_DROPDOWN( IDC_STEPBOX,OnStepBox )
  50. ON_COMMAND(ID_PARAM_SET, OnParamSet)
  51. ON_COMMAND(ID_VIEW_TOOLBAR1, OnViewToolbar1)
  52. ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBAR1, OnUpdateViewToolbar1)
  53. ON_COMMAND(ID_BUTTON_HUI, OnButtonHui)
  54. ON_COMMAND(ID_VIEW_TOOLBAR, OnViewToolbar)
  55. ON_UPDATE_COMMAND_UI(ID_VIEW_TOOLBAR, OnUpdateViewToolbar)
  56. ON_COMMAND(ID_BUTTON_DIN, OnButtonDin)
  57. ON_COMMAND(ID_BUTTON_QIAN, OnButtonQian)
  58. ON_COMMAND(ID_BUTTON_XIA, OnButtonXia)
  59. ON_UPDATE_COMMAND_UI(ID_BUTTON_DIN, OnUpdateButtonDin)
  60. ON_UPDATE_COMMAND_UI(ID_BUTTON_HUI, OnUpdateButtonHui)
  61. ON_UPDATE_COMMAND_UI(ID_BUTTON_QIAN, OnUpdateButtonQian)
  62. ON_UPDATE_COMMAND_UI(ID_BUTTON_XIA, OnUpdateButtonXia)
  63. ON_UPDATE_COMMAND_UI(ID_PARAM_SET, OnUpdateParamSet)
  64. ON_COMMAND(ID_BUTTON_JIN, OnButtonJin)
  65. ON_COMMAND(ID_BUTTON_KILL, OnButtonKill)
  66. ON_UPDATE_COMMAND_UI(ID_BUTTON_KILL, OnUpdateButtonKill)
  67. ON_UPDATE_COMMAND_UI(ID_BUTTON_JIN, OnUpdateButtonJin)
  68. ON_UPDATE_COMMAND_UI(ID_FILE_NEW-1, OnUpdateFile)
  69. ON_UPDATE_COMMAND_UI(ID_FILE_NEW, OnUpdateFileNew)
  70. ON_UPDATE_COMMAND_UI(ID_FILE_OPEN, OnUpdateFileOpen)
  71. ON_UPDATE_COMMAND_UI(ID_FILE_SAVE, OnUpdateFileSave)
  72. ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_AS, OnUpdateFileSaveAs)
  73. //}}AFX_MSG_MAP
  74. // ON_WM_SIZING()
  75. END_MESSAGE_MAP()
  76. static TCHAR BASED_CODE szSection[] = _T("Settings");
  77. static TCHAR BASED_CODE szWindowPos[] = _T("WindowPos");
  78. static TCHAR BASED_CODE szDump[] = _T("Dump");
  79. static TCHAR BASED_CODE szSreach[] = _T("Sreach");
  80. static TCHAR szFormat[] = _T("%u,%u,%d,%d,%d,%d,%d,%d,%d,%d");
  81. static TCHAR szDumpFormat[] = _T("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d");
  82. static TCHAR szSreachFormat[] = _T("%d,%d,%d,%d");
  83. static void ReadGameParam( CFive& f )
  84. {
  85. int WF0_1,WF0_2,WF0_3,WF0_4;
  86. int WF1_1,WF1_2,WF1_3,WF1_4;
  87. int WF2_3,WF2_4,WF5;
  88. int Deep,Breadth,Thread,Delta;
  89. CString strBuffer;
  90. TCHAR Def[250];
  91. wsprintf( Def,szDumpFormat,2,50,500,5000,1,20,150,600,400,450,30000 );
  92. strBuffer = AfxGetApp()->GetProfileString(szSection, szDump,Def );
  93. _stscanf( strBuffer,szDumpFormat,&WF0_1,&WF0_2,&WF0_3,&WF0_4,
  94. &WF1_1,&WF1_2,&WF1_3,&WF1_4,&WF2_3,&WF2_4,&WF5 );
  95. f.SetDump(1,1,WF0_1);
  96. f.SetDump(2,1,WF0_2);
  97. f.SetDump(3,1,WF0_3);
  98. f.SetDump(4,1,WF0_4);
  99. f.SetDump(1,0,WF1_1);
  100. f.SetDump(2,0,WF1_2);
  101. f.SetDump(3,0,WF1_3);
  102. f.SetDump(4,0,WF1_4);
  103. f.SetDump(3,2,WF2_3);
  104. f.SetDump(4,2,WF2_4);
  105. f.SetDump(5,5,WF5);
  106. wsprintf( Def,szSreachFormat,10,4,0,2 );
  107. strBuffer = AfxGetApp()->GetProfileString(szSection,szSreach,Def );
  108. _stscanf( strBuffer,szSreachFormat,&Breadth,&Deep,&Thread,&Delta );
  109. f.SetParam( Breadth,Deep,Thread,Delta );
  110. }
  111. static void WriteGameParam( CFive& f )
  112. {
  113. int WF0_1,WF0_2,WF0_3,WF0_4;
  114. int WF1_1,WF1_2,WF1_3,WF1_4;
  115. int WF2_3,WF2_4,WF5;
  116. int Deep,Breadth,Thread,Delta;
  117. TCHAR Buf[250];
  118. WF0_1 = f.GetDump(1,1);
  119. WF0_2 = f.GetDump(2,1);
  120. WF0_3 = f.GetDump(3,1);
  121. WF0_4 = f.GetDump(4,1);
  122. WF1_1 = f.GetDump(1,0);
  123. WF1_2 = f.GetDump(2,0);
  124. WF1_3 = f.GetDump(3,0);
  125. WF1_4 = f.GetDump(4,0);
  126. WF2_3 = f.GetDump(3,2);
  127. WF2_4 = f.GetDump(4,2);
  128. WF5   = f.GetDump(5,5);
  129. wsprintf( Buf,szDumpFormat,WF0_1,WF0_2,WF0_3,WF0_4,
  130. WF1_1,WF1_2,WF1_3,WF1_4,WF2_3,WF2_4,WF5 );
  131. AfxGetApp()->WriteProfileString( szSection,szDump,Buf );
  132. f.GetParam( Breadth,Deep,Thread,Delta );
  133. wsprintf( Buf,szSreachFormat,Breadth,Deep,Thread,Delta );
  134. AfxGetApp()->WriteProfileString( szSection,szSreach,Buf );
  135. }
  136. static BOOL PASCAL NEAR ReadWindowPlacement(LPWINDOWPLACEMENT pwp)
  137. {
  138. CString strBuffer = AfxGetApp()->GetProfileString(szSection, szWindowPos);
  139. if (strBuffer.IsEmpty())
  140. return FALSE;
  141. WINDOWPLACEMENT wp;
  142. int nRead = _stscanf(strBuffer, szFormat,
  143. &wp.flags, &wp.showCmd,
  144. &wp.ptMinPosition.x, &wp.ptMinPosition.y,
  145. &wp.ptMaxPosition.x, &wp.ptMaxPosition.y,
  146. &wp.rcNormalPosition.left, &wp.rcNormalPosition.top,
  147. &wp.rcNormalPosition.right, &wp.rcNormalPosition.bottom);
  148. if (nRead != 10)
  149. return FALSE;
  150. wp.length = sizeof wp;
  151. *pwp = wp;
  152. return TRUE;
  153. }
  154. static void PASCAL NEAR WriteWindowPlacement(LPWINDOWPLACEMENT pwp)
  155. // write a window placement to settings section of app's ini file
  156. {
  157. TCHAR szBuffer[sizeof("-32767")*8 + sizeof("65535")*2];
  158. wsprintf(szBuffer, szFormat,
  159. pwp->flags, pwp->showCmd,
  160. pwp->ptMinPosition.x, pwp->ptMinPosition.y,
  161. pwp->ptMaxPosition.x, pwp->ptMaxPosition.y,
  162. pwp->rcNormalPosition.left, pwp->rcNormalPosition.top,
  163. pwp->rcNormalPosition.right, pwp->rcNormalPosition.bottom);
  164. AfxGetApp()->WriteProfileString(szSection, szWindowPos, szBuffer);
  165. }
  166. /////////////////////////////////////////////////////////////////////////////
  167. // CMainFrame construction/destruction
  168. CMainFrame::CMainFrame()
  169. {
  170. // TODO: add member initialization code here
  171. }
  172. CMainFrame::~CMainFrame()
  173. {
  174. }
  175. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  176. {
  177. // TODO: Modify the Window class or styles here by modifying
  178. //  the CREATESTRUCT cs
  179. cs.style &= ~FWS_ADDTOTITLE;
  180. return CFrameWnd::PreCreateWindow(cs);
  181. }
  182. /////////////////////////////////////////////////////////////////////////////
  183. // CMainFrame diagnostics
  184. #ifdef _DEBUG
  185. void CMainFrame::AssertValid() const
  186. {
  187. CFrameWnd::AssertValid();
  188. }
  189. void CMainFrame::Dump(CDumpContext& dc) const
  190. {
  191. CFrameWnd::Dump(dc);
  192. }
  193. #endif //_DEBUG
  194. /////////////////////////////////////////////////////////////////////////////
  195. // CMainFrame message handlers
  196.  int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  197. {
  198. if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  199. return -1;
  200. ReadGameParam( m_Five );
  201. WINDOWPLACEMENT wp;
  202. if (ReadWindowPlacement(&wp))
  203. SetWindowPlacement(&wp);
  204. if (!m_wndToolBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_DYNAMIC |
  205. CBRS_TOP |CBRS_TOOLTIPS | CBRS_FLYBY, IDR_TOOLBAR_MAIN ) ||
  206. !m_wndToolBar.LoadBitmap( IDB_BITMAP_MAIN ) ||
  207. !m_wndToolBar.SetButtons( mainId, sizeof(mainId)/sizeof(UINT)))
  208. {
  209. TRACE0("Failed to create resourcebarn");
  210. return -1;      // fail to create
  211. }
  212. if (!m_wndPlayBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_FIXED |
  213. CBRS_TOP |CBRS_TOOLTIPS | CBRS_FLYBY, IDR_TOOLBAR_PLAY ) ||
  214. !m_wndPlayBar.LoadBitmap( IDB_BITMAP_PLAY ) ||
  215. !m_wndPlayBar.SetButtons( playId, sizeof(playId)/sizeof(UINT)))
  216. {
  217. TRACE0("Failed to create resourcebarn");
  218. return -1;      // fail to create
  219. }
  220. CRect rect(-100, -100, 0, 0);
  221. if (!m_wndStepBox.Create(WS_CHILD |CBS_DROPDOWNLIST|
  222. CBS_AUTOHSCROLL | WS_VSCROLL | CBS_HASSTRINGS, rect, &m_wndPlayBar,
  223. IDC_STEPBOX))
  224. {
  225. return -1;
  226. }
  227. m_wndPlayBar.SetButtonInfo(8, IDC_STEPBOX, TBBS_SEPARATOR, 100);
  228. if (m_wndStepBox.m_hWnd != NULL)
  229. {
  230. CRect rect;
  231. m_wndPlayBar.GetItemRect(8, rect);
  232. m_wndStepBox.SetWindowPos(NULL, rect.left, rect.top, 0, 0, SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOCOPYBITS);
  233. m_wndStepBox.ShowWindow(SW_SHOW);
  234. }
  235. else
  236. return -1;
  237. if (!m_wndStatusBar.Create(this) ||
  238. !m_wndStatusBar.SetIndicators(indicators,
  239.   sizeof(indicators)/sizeof(UINT)))
  240. {
  241. TRACE0("Failed to create status barn");
  242. return -1;      // fail to create
  243. }
  244. SIZE size = {18,18};
  245. SIZE siz  = { 25,25 };
  246. m_wndToolBar.SetSizes( siz,size );
  247. m_wndPlayBar.SetSizes( siz,size );
  248. m_wndToolBar.SetWindowText(_T("通用工具"));
  249. m_wndToolBar.EnableDocking( CBRS_ALIGN_ANY );
  250. m_wndPlayBar.SetWindowText(_T("特殊工具"));
  251. m_wndPlayBar.EnableDocking( CBRS_ALIGN_TOP|CBRS_ALIGN_BOTTOM );
  252. EnableDocking( CBRS_ALIGN_ANY );
  253. DockControlBar( &m_wndToolBar,AFX_IDW_DOCKBAR_TOP);
  254. DockControlBarLeftOf(&m_wndPlayBar,&m_wndToolBar);
  255. LoadBarState(_T("General"));
  256. CFiveView *pView;
  257. CRect re;
  258. int W,H,W1,H1,dw,dh;
  259. pView = (CFiveView*)GetActiveView();
  260. if( pView )
  261. {
  262. pView -> GetWindowRect(&rect);
  263. GetWindowRect(&re);
  264. W = rect.right-rect.left;
  265. H = rect.bottom-rect.top;
  266. W1 = re.right-re.left;
  267. H1 = re.bottom-re.top;
  268. dw = W1 - W1;
  269. dh = H1 - H1;
  270. re.bottom = re.top + dh + re.right - re.left - dw;
  271. MoveWindow(&re,TRUE);
  272. }
  273. // TODO: Add your specialized creation code here
  274. //m_wndStatusBar.SetPaneText(1,"35%" );
  275. //m_wndStatusBar.SetPaneText(2,"1.25Mb" );
  276. //SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR_MAIN));
  277. //ShowCursor( TRUE );
  278. //m_wndStatusBar.SetPaneText(3,"450");
  279. CFive five;
  280. five.SetInfo( &m_wndStatusBar );
  281. return 0;
  282. }
  283.  CComboBox* CMainFrame::GetListBox()
  284.  {
  285.  return &m_wndStepBox;
  286.  }
  287.  void CMainFrame::DockControlBarLeftOf(CToolBar* Bar,CToolBar* LeftOf)
  288. {
  289. CRect rect;
  290. DWORD dw;
  291. UINT n;
  292. // get MFC to adjust the dimensions of all docked ToolBars
  293. // so that GetWindowRect will be accurate
  294. RecalcLayout();
  295. LeftOf->GetWindowRect(&rect);
  296. rect.OffsetRect(1,0);
  297. dw=LeftOf->GetBarStyle();
  298. n = 0;
  299. n = (dw&CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP : n;
  300. n = (dw&CBRS_ALIGN_BOTTOM && n==0) ? AFX_IDW_DOCKBAR_BOTTOM : n;
  301. n = (dw&CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT : n;
  302. n = (dw&CBRS_ALIGN_RIGHT && n==0) ? AFX_IDW_DOCKBAR_RIGHT : n;
  303. // When we take the default parameters on rect, DockControlBar will dock
  304. // each Toolbar on a seperate line.  By calculating a rectangle, we in effect
  305. // are simulating a Toolbar being dragged to that location and docked.
  306. DockControlBar(Bar,n,&rect);
  307. }
  308. LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
  309. {
  310. // TODO: Add your specialized code here and/or call the base class
  311. if( message == WM_CLOSE )
  312. {
  313. CExitDlg dlg;
  314. if( dlg.DoModal() != IDOK )
  315. return FALSE;
  316. }
  317. return CFrameWnd::WindowProc(message, wParam, lParam);
  318. }
  319. void CMainFrame::OnClose() 
  320. {
  321. // TODO: Add your message handler code here and/or call default
  322. SaveBarState(_T("General"));
  323. WINDOWPLACEMENT wp;
  324. wp.length = sizeof wp;
  325. // WriteGameParam( m_Five );
  326. if (GetWindowPlacement(&wp))
  327. {
  328. wp.flags = 0;
  329. if (IsZoomed())
  330. wp.flags |= WPF_RESTORETOMAXIMIZED;
  331. // and write it to the .INI file
  332. WriteWindowPlacement(&wp);
  333. }
  334. CFrameWnd::OnClose();
  335. }
  336. void CMainFrame::OnStepBox()
  337. {
  338. m_Five.InListBox( m_wndStepBox );
  339. }
  340. void CMainFrame::OnParamSet() 
  341. {
  342. // TODO: Add your command handler code here
  343. CSetDlg d;
  344. d.WF0_1 = m_Five.GetDump(1,1);
  345. d.WF0_2 = m_Five.GetDump(2,1);
  346. d.WF0_3 = m_Five.GetDump(3,1);
  347. d.WF0_4 = m_Five.GetDump(4,1);
  348. d.WF1_1 = m_Five.GetDump(1,0);
  349. d.WF1_2 = m_Five.GetDump(2,0);
  350. d.WF1_3 = m_Five.GetDump(3,0);
  351. d.WF1_4 = m_Five.GetDump(4,0);
  352. d.WF2_3 = m_Five.GetDump(3,2);
  353. d.WF2_4 = m_Five.GetDump(4,2);
  354. d.WF5   = m_Five.GetDump(5,5);
  355. m_Five.GetParam( d.Breadth,d.Deep,d.Thread,d.Delta );
  356. if( d.DoModal() == IDOK )
  357. {
  358.     m_Five.SetDump(1,0,d.WF1_1);
  359.     m_Five.SetDump(2,0,d.WF1_2);
  360.     m_Five.SetDump(3,0,d.WF1_3);
  361.     m_Five.SetDump(4,0,d.WF1_4);
  362.     m_Five.SetDump(1,1,d.WF0_1);
  363.     m_Five.SetDump(2,1,d.WF0_2);
  364.     m_Five.SetDump(3,1,d.WF0_3);
  365.     m_Five.SetDump(4,1,d.WF0_4);
  366.     m_Five.SetDump(3,2,d.WF2_3);
  367.     m_Five.SetDump(4,2,d.WF2_4);
  368.     m_Five.SetDump(5,5,d.WF5);
  369.     m_Five.SetParam( d.Breadth,d.Deep,d.Thread,d.Delta );
  370. WriteGameParam( m_Five );
  371. }
  372. }
  373. void CMainFrame::OnViewToolbar1() 
  374. {
  375. // TODO: Add your command handler code here
  376. if( m_wndPlayBar.GetStyle()&WS_VISIBLE )
  377. {
  378. ShowControlBar( &m_wndPlayBar,FALSE,FALSE );
  379. }
  380. else
  381. {
  382. ShowControlBar( &m_wndPlayBar,TRUE,FALSE );
  383. }
  384. }
  385. void CMainFrame::OnUpdateViewToolbar1(CCmdUI* pCmdUI) 
  386. {
  387. // TODO: Add your command update UI handler code here
  388. if( m_wndPlayBar.GetStyle()&WS_VISIBLE )
  389. {
  390. pCmdUI->SetCheck( 1 );
  391. }
  392. else
  393. {
  394. pCmdUI->SetCheck( 0 );
  395. }
  396. }
  397. void CMainFrame::OnButtonHui() 
  398. {
  399. // TODO: Add your command handler code here
  400. CFive five;
  401. CFiveView *mpView;
  402. if(five.HuiOneStep()==FALSE)
  403. {
  404. MessageBeep(0);
  405. return;
  406. }
  407. five.InListBox( m_wndStepBox );
  408. mpView = (CFiveView*)GetActiveView();
  409. if( mpView == NULL )
  410. return;
  411. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  412. return;
  413. mpView->Invalidate(FALSE);
  414. mpView->UpdateWindow();
  415. }
  416. void CMainFrame::OnViewToolbar() 
  417. {
  418. // TODO: Add your command handler code here
  419. if( m_wndToolBar.GetStyle()&WS_VISIBLE )
  420. {
  421. ShowControlBar( &m_wndToolBar,FALSE,FALSE );
  422. }
  423. else
  424. {
  425. ShowControlBar( &m_wndToolBar,TRUE,FALSE );
  426. }
  427. }
  428. void CMainFrame::OnUpdateViewToolbar(CCmdUI* pCmdUI) 
  429. {
  430. // TODO: Add your command update UI handler code here
  431. if( m_wndToolBar.GetStyle()&WS_VISIBLE )
  432. {
  433. pCmdUI->SetCheck( 1 );
  434. }
  435. else
  436. {
  437. pCmdUI->SetCheck( 0 );
  438. }
  439. }
  440. void CMainFrame::OnButtonDin() 
  441. {
  442. // TODO: Add your command handler code here
  443. CFive five;
  444. CFiveView *mpView;
  445. if(five.BackEndStep()==FALSE)
  446. {
  447. MessageBeep(0);
  448. return;
  449. }
  450. mpView = (CFiveView*)GetActiveView();
  451. if( mpView == NULL )
  452. return;
  453. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  454. return;
  455. mpView->Invalidate(FALSE);
  456. mpView->UpdateWindow();
  457. }
  458. void CMainFrame::OnButtonQian() 
  459. {
  460. // TODO: Add your command handler code here
  461. CFive five;
  462. CFiveView *mpView;
  463. if(five.BackOneStep()==FALSE)
  464. {
  465. MessageBeep(0);
  466. return;
  467. }
  468. mpView = (CFiveView*)GetActiveView();
  469. if( mpView == NULL )
  470. return;
  471. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  472. return;
  473. mpView->Invalidate(FALSE);
  474. mpView->UpdateWindow();
  475. }
  476. void CMainFrame::OnButtonXia() 
  477. {
  478. // TODO: Add your command handler code here
  479. CFive five;
  480. CFiveView *mpView;
  481. if(five.FowardOneStep()==FALSE)
  482. {
  483. MessageBeep(0);
  484. return;
  485. }
  486. mpView = (CFiveView*)GetActiveView();
  487. if( mpView == NULL )
  488. return;
  489. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  490. return;
  491. mpView->Invalidate(FALSE);
  492. mpView->UpdateWindow();
  493. }
  494. void CMainFrame::OnUpdateButtonDin(CCmdUI* pCmdUI) 
  495. {
  496. // TODO: Add your command update UI handler code here
  497. CFiveView *mpView;
  498. mpView = (CFiveView*)GetActiveView();
  499. if( mpView == NULL )
  500. return;
  501. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  502. return;
  503. if( mpView -> m_pFive == NULL )
  504. pCmdUI->Enable( TRUE );
  505. else
  506. pCmdUI->Enable( FALSE );
  507. }
  508. void CMainFrame::OnUpdateButtonHui(CCmdUI* pCmdUI) 
  509. {
  510. // TODO: Add your command update UI handler code here
  511. CFiveView *mpView;
  512. mpView = (CFiveView*)GetActiveView();
  513. if( mpView == NULL )
  514. return;
  515. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  516. return;
  517. if( mpView -> m_pFive == NULL )
  518. pCmdUI->Enable( TRUE );
  519. else
  520. pCmdUI->Enable( FALSE );
  521. }
  522. void CMainFrame::OnUpdateButtonQian(CCmdUI* pCmdUI) 
  523. {
  524. // TODO: Add your command update UI handler code here
  525. CFiveView *mpView;
  526. mpView = (CFiveView*)GetActiveView();
  527. if( mpView == NULL )
  528. return;
  529. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  530. return;
  531. if( mpView -> m_pFive == NULL )
  532. pCmdUI->Enable( TRUE );
  533. else
  534. pCmdUI->Enable( FALSE );
  535. }
  536. void CMainFrame::OnUpdateButtonXia(CCmdUI* pCmdUI) 
  537. {
  538. // TODO: Add your command update UI handler code here
  539. CFiveView *mpView;
  540. mpView = (CFiveView*)GetActiveView();
  541. if( mpView == NULL )
  542. return;
  543. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  544. return;
  545. if( mpView -> m_pFive == NULL )
  546. pCmdUI->Enable( TRUE );
  547. else
  548. pCmdUI->Enable( FALSE );
  549. }
  550. void CMainFrame::OnUpdateParamSet(CCmdUI* pCmdUI) 
  551. {
  552. // TODO: Add your command update UI handler code here
  553. CFiveView *mpView;
  554. mpView = (CFiveView*)GetActiveView();
  555. if( mpView == NULL )
  556. return;
  557. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  558. return;
  559. if( mpView -> m_pFive == NULL )
  560. pCmdUI->Enable( TRUE );
  561. else
  562. pCmdUI->Enable( FALSE );
  563. }
  564. void CMainFrame::OnButtonJin() 
  565. {
  566. // TODO: Add your command handler code here
  567. CFive five;
  568. CFiveView *mpView;
  569. if(five.OneStep()==FALSE)
  570. {
  571. MessageBeep(0);
  572. return;
  573. }
  574. mpView = (CFiveView*)GetActiveView();
  575. if( mpView == NULL )
  576. return;
  577. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  578. return;
  579. mpView->Invalidate(FALSE);
  580. mpView->UpdateWindow();
  581. }
  582. void CMainFrame::OnButtonKill() 
  583. {
  584. // TODO: Add your command handler code here
  585. CFiveView *mpView;
  586. mpView = (CFiveView*)GetActiveView();
  587. if( mpView == NULL )
  588. return;
  589. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  590. return;
  591. mpView->m_pFive->KillWzqThread();
  592. mpView->Invalidate(FALSE);
  593. mpView->UpdateWindow();
  594. delete mpView -> m_pFive;
  595. mpView -> m_pFive = NULL;
  596. }
  597. void CMainFrame::OnUpdateButtonKill(CCmdUI* pCmdUI) 
  598. {
  599. // TODO: Add your command update UI handler code here
  600. CFiveView *mpView;
  601. mpView = (CFiveView*)GetActiveView();
  602. if( mpView == NULL )
  603. return;
  604. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  605. return;
  606. if( mpView -> m_pFive == NULL )
  607. pCmdUI->Enable( FALSE );
  608. else
  609. pCmdUI->Enable( TRUE );
  610. }
  611. void CMainFrame::OnUpdateButtonJin(CCmdUI* pCmdUI) 
  612. {
  613. // TODO: Add your command update UI handler code here
  614. CFiveView *mpView;
  615. mpView = (CFiveView*)GetActiveView();
  616. if( mpView == NULL )
  617. return;
  618. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  619. return;
  620. if( mpView -> m_pFive == NULL )
  621. pCmdUI->Enable( TRUE );
  622. else
  623. pCmdUI->Enable( FALSE );
  624. }
  625. void CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI) 
  626. {
  627. // TODO: Add your command update UI handler code here
  628. CFiveView *mpView;
  629. mpView = (CFiveView*)GetActiveView();
  630. if( mpView == NULL )
  631. return;
  632. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  633. return;
  634. if( mpView -> m_pFive == NULL )
  635. pCmdUI->Enable( TRUE );
  636. else
  637. pCmdUI->Enable( FALSE );
  638. }
  639. void CMainFrame::OnUpdateFileOpen(CCmdUI* pCmdUI) 
  640. {
  641. // TODO: Add your command update UI handler code here
  642. CFiveView *mpView;
  643. mpView = (CFiveView*)GetActiveView();
  644. if( mpView == NULL )
  645. return;
  646. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  647. return;
  648. if( mpView -> m_pFive == NULL )
  649. pCmdUI->Enable( TRUE );
  650. else
  651. pCmdUI->Enable( FALSE );
  652. }
  653. void CMainFrame::OnUpdateFileSave(CCmdUI* pCmdUI) 
  654. {
  655. // TODO: Add your command update UI handler code here
  656. CFiveView *mpView;
  657. mpView = (CFiveView*)GetActiveView();
  658. if( mpView == NULL )
  659. return;
  660. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  661. return;
  662. if( mpView -> m_pFive == NULL )
  663. pCmdUI->Enable( TRUE );
  664. else
  665. pCmdUI->Enable( FALSE );
  666. }
  667. void CMainFrame::OnUpdateFileSaveAs(CCmdUI* pCmdUI) 
  668. {
  669. // TODO: Add your command update UI handler code here
  670. CFiveView *mpView;
  671. mpView = (CFiveView*)GetActiveView();
  672. if( mpView == NULL )
  673. return;
  674. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  675. return;
  676. if( mpView -> m_pFive == NULL )
  677. pCmdUI->Enable( TRUE );
  678. else
  679. pCmdUI->Enable( FALSE );
  680. }
  681. void CMainFrame::OnUpdateFile( CCmdUI* pCmdUI )
  682. {
  683. CFiveView *mpView;
  684. mpView = (CFiveView*)GetActiveView();
  685. if( mpView == NULL )
  686. return;
  687. if( !mpView -> IsKindOf( RUNTIME_CLASS( CFiveView)))
  688. return;
  689. if( mpView -> m_pFive == NULL )
  690. pCmdUI->Enable( TRUE );
  691. else
  692. pCmdUI->Enable( FALSE );
  693. }