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

棋牌游戏

开发平台:

Visual C++

  1. // ServerDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "five.h"
  5. #include "ServerDlg.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. // CServerDlg dialog
  14. CServerDlg::CServerDlg(CWnd* pParent /*=NULL*/)
  15. : CDialog(CServerDlg::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CServerDlg)
  18. // NOTE: the ClassWizard will add member initialization here
  19. //}}AFX_DATA_INIT
  20. }
  21. void CServerDlg::DoDataExchange(CDataExchange* pDX)
  22. {
  23. CDialog::DoDataExchange(pDX);
  24. //{{AFX_DATA_MAP(CServerDlg)
  25. // NOTE: the ClassWizard will add DDX and DDV calls here
  26. //}}AFX_DATA_MAP
  27. }
  28. BEGIN_MESSAGE_MAP(CServerDlg, CDialog)
  29. //{{AFX_MSG_MAP(CServerDlg)
  30. ON_BN_CLICKED(IDC_BTN_LEAVE, OnBtnLeave)
  31. ON_BN_CLICKED(IDC_BTN_LISTEN, OnBtnListen)
  32. //}}AFX_MSG_MAP
  33. END_MESSAGE_MAP()
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CServerDlg message handlers
  36. BOOL CServerDlg::OnInitDialog() 
  37. {
  38. CDialog::OnInitDialog();
  39. // TODO: Add extra initialization here
  40.     // 首先禁用主窗口达到模式对话框的目的
  41.     GetParent()->EnableWindow( FALSE );
  42.     // 获取主机名及IP地址
  43.     CHAR szHost[100];
  44.     CHAR *szIP;
  45.     hostent *host;
  46.     gethostname(szHost, 100);
  47.     SetDlgItemText( IDC_EDIT_HOST, szHost );
  48.     host = gethostbyname( szHost );
  49.     for ( int i = 0; host != NULL && host->h_addr_list[i] != NULL; i++ )
  50.     {
  51.         szIP = inet_ntoa( *( (in_addr *)host->h_addr_list[i] ) );
  52.         break;
  53.     }
  54.     SetDlgItemText( IDC_EDIT_IP, szIP );
  55.     GetDlgItem( IDC_BTN_LISTEN )->SetFocus();
  56. return FALSE;  // return TRUE unless you set the focus to a control
  57.               // EXCEPTION: OCX Property Pages should return FALSE
  58. }
  59. void CServerDlg::OnBtnLeave() 
  60. {
  61. // TODO: Add your control notification handler code here
  62. OnCancel();
  63. }
  64. void CServerDlg::OnBtnListen() 
  65. {
  66. // TODO: Add your control notification handler code here
  67. CTable *pTable = (CTable *)GetParent()->GetDlgItem( IDC_TABLE );
  68.     SetDlgItemText( IDC_ST_STATUS, _T("状态:等待其他玩家加入...") );
  69.     pTable->m_sock.Create( 20000 );
  70.     pTable->m_sock.Listen();
  71.     GetDlgItem( IDC_BTN_LISTEN )->EnableWindow( FALSE );
  72. }
  73. void CServerDlg::OnCancel() 
  74. {
  75. // TODO: Add extra cleanup here
  76. CTable *pTable = (CTable *)GetParent()->GetDlgItem( IDC_TABLE );
  77.     pTable->m_sock.Close();
  78. CDialog::OnCancel();
  79. }