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

棋牌游戏

开发平台:

Visual C++

  1. // FiveSocket.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "five.h"
  5. #include "FiveSocket.h"
  6. #include "Table.h"
  7. #include "FiveDlg.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CFiveSocket
  15. CFiveSocket::CFiveSocket()
  16. {
  17. }
  18. CFiveSocket::~CFiveSocket()
  19. {
  20. }
  21. // Do not edit the following lines, which are needed by ClassWizard.
  22. #if 0
  23. BEGIN_MESSAGE_MAP(CFiveSocket, CAsyncSocket)
  24. //{{AFX_MSG_MAP(CFiveSocket)
  25. //}}AFX_MSG_MAP
  26. END_MESSAGE_MAP()
  27. #endif // 0
  28. /////////////////////////////////////////////////////////////////////////////
  29. // CFiveSocket member functions
  30. void CFiveSocket::OnAccept( int nErrorCode )
  31. {
  32.     CFiveDlg *pDlg = (CFiveDlg *)AfxGetMainWnd();
  33.     // 使本窗口生效
  34.     pDlg->EnableWindow();
  35.     delete []pDlg->m_pDlg;
  36.     pDlg->m_pDlg = NULL;
  37.     pDlg->m_Table.Accept( 2 );
  38.     pDlg->GetDlgItem( IDC_BTN_HQ )->EnableWindow( TRUE );
  39.     pDlg->GetDlgItem( IDC_BTN_BACK )->EnableWindow( FALSE );
  40.     pDlg->GetDlgItem( IDC_CMB_CHAT )->EnableWindow( TRUE );
  41.     pDlg->GetDlgItem( IDC_BTN_LOST )->EnableWindow( TRUE );
  42.     pDlg->m_Table.SetMenuState( FALSE );
  43. }
  44. void CFiveSocket::OnClose( int nErrorCode )
  45. {
  46.     CFiveDlg *pDlg = (CFiveDlg *)AfxGetMainWnd();
  47.     pDlg->MessageBox( _T("对方已经离开游戏,改日再较量不迟。"), _T("五子棋"), MB_ICONINFORMATION);
  48.     // 禁用所有项目,并使菜单生效
  49.     pDlg->GetDlgItem( IDC_BTN_HQ )->EnableWindow( FALSE );
  50.     pDlg->GetDlgItem( IDC_BTN_BACK )->EnableWindow( FALSE );
  51.     pDlg->GetDlgItem( IDC_CMB_CHAT )->EnableWindow( FALSE );
  52.     pDlg->GetDlgItem( IDC_BTN_LOST )->EnableWindow( FALSE );
  53.     pDlg->m_Table.SetMenuState( TRUE );
  54.     pDlg->GetMenu()->EnableMenuItem( ID_MENU_PLAYAGAIN, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED );
  55.     pDlg->m_Table.SetWait( TRUE );
  56.     // 重新设置对方姓名
  57.     pDlg->SetDlgItemText( IDC_ST_ENEMY, _T("无玩家加入") );
  58. }
  59. void CFiveSocket::OnConnect( int nErrorCode )
  60. {
  61.     CTable *pTable = (CTable *)AfxGetMainWnd()->GetDlgItem( IDC_TABLE );
  62.     pTable->m_bConnected = TRUE;
  63.     pTable->Connect( 2 );
  64. }
  65. void CFiveSocket::OnReceive( int nErrorCode )
  66. {
  67.     CTable *pTable = (CTable *)AfxGetMainWnd()->GetDlgItem( IDC_TABLE );
  68.     pTable->Receive();
  69. }