StatDlg.cpp
上传用户:fjjkzlh
上传日期:2010-04-06
资源大小:469k
文件大小:3k
源码类别:

棋牌游戏

开发平台:

Visual C++

  1. // StatDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "five.h"
  5. #include "StatDlg.h"
  6. #include "Table.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CStatDlg dialog
  14. CStatDlg::CStatDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CStatDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CStatDlg)
  18. // NOTE: the ClassWizard will add member initialization here
  19. //}}AFX_DATA_INIT
  20. }
  21. void CStatDlg::DoDataExchange(CDataExchange* pDX)
  22. {
  23. CDialog::DoDataExchange(pDX);
  24. //{{AFX_DATA_MAP(CStatDlg)
  25. // NOTE: the ClassWizard will add DDX and DDV calls here
  26. //}}AFX_DATA_MAP
  27. }
  28. BEGIN_MESSAGE_MAP(CStatDlg, CDialog)
  29. //{{AFX_MSG_MAP(CStatDlg)
  30. ON_BN_CLICKED(IDC_BTN_RESET, OnBtnReset)
  31. //}}AFX_MSG_MAP
  32. END_MESSAGE_MAP()
  33. /////////////////////////////////////////////////////////////////////////////
  34. // CStatDlg message handlers
  35. BOOL CStatDlg::OnInitDialog() 
  36. {
  37. CDialog::OnInitDialog();
  38. // TODO: Add extra initialization here
  39.     // 读取姓名
  40.     CTable *pTable = (CTable *)GetParent()->GetDlgItem( IDC_TABLE );
  41.     SetDlgItemText( IDC_ST_NAME, pTable->m_strMe );
  42.     ShowStat();
  43. return TRUE;  // return TRUE unless you set the focus to a control
  44.               // EXCEPTION: OCX Property Pages should return FALSE
  45. }
  46. void CStatDlg::OnOK() 
  47. {
  48. // TODO: Add extra validation here
  49.     CFiveApp *pApp = (CFiveApp *)AfxGetApp();
  50.     // 写入战绩统计
  51.     TCHAR str[10];
  52.     wsprintf( str, _T("%d"), pApp->m_nWin );
  53.     ::WritePrivateProfileString( _T("Stats"), _T("Win"), str, pApp->m_szIni );
  54.     wsprintf( str, _T("%d"), pApp->m_nDraw );
  55.     ::WritePrivateProfileString( _T("Stats"), _T("Draw"), str, pApp->m_szIni );
  56.     wsprintf( str, _T("%d"), pApp->m_nLost );
  57.     ::WritePrivateProfileString( _T("Stats"), _T("Lost"), str, pApp->m_szIni );
  58. CDialog::OnOK();
  59. }
  60. void CStatDlg::OnBtnReset() 
  61. {
  62. // TODO: Add your control notification handler code here
  63.     CFiveApp *pApp = (CFiveApp *)AfxGetApp();
  64.     pApp->m_nWin = 0;
  65.     pApp->m_nDraw = 0;
  66.     pApp->m_nLost = 0;
  67.     ShowStat();
  68. }
  69. void CStatDlg::ShowStat()
  70. {
  71.     CFiveApp *pApp = (CFiveApp *)AfxGetApp();
  72.     CString str;
  73.     str.Format( _T("%d"), pApp->m_nWin );
  74.     SetDlgItemText( IDC_ST_WIN, str );
  75.     str.Format( _T("%d"), pApp->m_nDraw );
  76.     SetDlgItemText( IDC_ST_DRAW, str );
  77.     str.Format( _T("%d"), pApp->m_nLost );
  78.     SetDlgItemText( IDC_ST_LOST, str );
  79.     // 计算胜率
  80.     if ( 0 == pApp->m_nWin )
  81.     {
  82.         str = _T("胜率:0%");
  83.     }
  84.     else
  85.     {
  86.         str.Format( _T("胜率:%d%%"), pApp->m_nWin * 100 / ( pApp->m_nWin + pApp->m_nDraw + pApp->m_nLost ) );
  87.     }
  88.     SetDlgItemText( IDC_ST_PERCENT, str );
  89. }