亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fivedlg.cpp

?? 一個五子棋的畢業設計
?? CPP
字號:
// FiveDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Five.h"
#include "FiveDlg.h"
#include "ServerDlg.h"
#include "ClientDlg.h"
#include "NameDlg.h"
#include "StatDlg.h"
#include "AboutDlg.h"
#include "Table.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFiveDlg dialog

CFiveDlg::CFiveDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFiveDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFiveDlg)
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CFiveDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFiveDlg)
	DDX_Control(pDX, IDC_EDT_CHAT, m_ChatList);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CFiveDlg, CDialog)
	//{{AFX_MSG_MAP(CFiveDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_COMMAND(ID_MENU_1P, OnMenu1p)
	ON_BN_CLICKED(IDC_BTN_BACK, OnBtnBack)
	ON_COMMAND(ID_MENU_PC, OnMenuPc)
	ON_COMMAND(ID_MENU_SERVER, OnMenuServer)
	ON_COMMAND(ID_MENU_CLIENT, OnMenuClient)
	ON_WM_SETCURSOR()
	ON_BN_CLICKED(IDC_BTN_HQ, OnBtnHq)
	ON_BN_CLICKED(IDC_BTN_LOST, OnBtnLost)
	ON_COMMAND(ID_MENU_LEAVE, OnMenuLeave)
	ON_COMMAND(ID_MENU_PLAYAGAIN, OnMenuPlayagain)
	ON_COMMAND(ID_MENU_NAME, OnMenuName)
	ON_COMMAND(ID_MENU_STAT, OnMenuStat)
	ON_COMMAND(ID_MENU_EXIT, OnMenuExit)
	ON_COMMAND(ID_MENU_ABOUT, OnMenuAbout)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFiveDlg message handlers

BOOL CFiveDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
    m_pDlg = NULL;
    CRect rect(0, 0, 200, 200);
    m_Table.CreateEx( WS_EX_CLIENTEDGE, _T("ChessTable"), NULL, WS_VISIBLE | WS_BORDER | WS_CHILD,
        CRect( 0, 0, 401, 478 ), this, IDC_TABLE );
    // 設置雙方姓名
    SetDlgItemText( IDC_ST_ME, m_Table.m_strMe );
    SetDlgItemText( IDC_ST_ENEMY, _T("無玩家加入") );
    // 禁用“再玩”和“離開”
    CMenu *pMenu = GetMenu();
    pMenu->EnableMenuItem( ID_MENU_PLAYAGAIN, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND );
    pMenu->EnableMenuItem( ID_MENU_LEAVE, MF_DISABLED | MF_GRAYED | MF_BYCOMMAND );
    // 捕獲聊天輸入框句柄,供處理回車使用
    m_hChat = FindWindowEx( GetDlgItem( IDC_CMB_CHAT )->GetSafeHwnd(), NULL, _T("Edit"), NULL );
    ::SendMessage( m_hChat, EM_LIMITTEXT, (WPARAM)128, 0);
    m_Table.Clear( TRUE );
    GetDlgItem( IDC_CMB_CHAT )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_BACK )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_HQ )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_LOST )->EnableWindow( FALSE );

    GetDlgItem( IDC_TABLE )->SetFocus();
	return FALSE;  // return TRUE  unless you set the focus to a control
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CFiveDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CFiveDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CFiveDlg::OnOK() 
{
}

void CFiveDlg::OnCancel() 
{
    if ( IDYES == MessageBox( _T("確定要退出嗎?"), _T("五子棋"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2 ) )
        CDialog::OnCancel();
}

void CFiveDlg::OnMenu1p() 
{
	// TODO: Add your command handler code here

    // 與電腦對弈,則不允許和棋、聊天與認輸
    GetDlgItem( IDC_BTN_HQ )->EnableWindow( FALSE );
    GetDlgItem( IDC_CMB_CHAT )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_BACK )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_LOST )->EnableWindow( FALSE );
    m_Table.Accept( 1 );
}

void CFiveDlg::OnBtnBack() 
{
	// TODO: Add your control notification handler code here
    m_Table.Back();
}

void CFiveDlg::OnMenuPc() 
{
	// TODO: Add your command handler code here
    // 與電腦對弈,則不允許和棋、聊天與認輸
    GetDlgItem( IDC_BTN_HQ )->EnableWindow( FALSE );
    GetDlgItem( IDC_CMB_CHAT )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_BACK )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_LOST )->EnableWindow( FALSE );
    m_Table.SetColor( 1 );
    m_Table.Clear( FALSE );
    m_Table.SetGameMode( 1 );
}

void CFiveDlg::OnMenuServer() 
{
    // TODO: Add your command handler code here
    m_pDlg = new CServerDlg;
    m_pDlg->Create( IDD_DLG_SERVER, this );
    m_pDlg->ShowWindow( SW_SHOW );
}

void CFiveDlg::OnMenuClient() 
{
	// TODO: Add your command handler code here
    CClientDlg dlg;
    if ( IDOK == dlg.DoModal() )
    {
        // 發送己方姓名
        MSGSTRUCT msg;
        msg.uMsg = MSG_INFORMATION;
        lstrcpy( msg.szMsg, m_Table.m_strMe );

        m_Table.m_conn.Send( (LPCVOID)&msg, sizeof( MSGSTRUCT ) );
        // 設置按鈕狀態
        GetDlgItem( IDC_BTN_HQ )->EnableWindow( TRUE );
        GetDlgItem( IDC_CMB_CHAT )->EnableWindow( TRUE );
        GetDlgItem( IDC_BTN_BACK )->EnableWindow( FALSE );
        GetDlgItem( IDC_BTN_LOST )->EnableWindow( TRUE );
        // 設置菜單狀態
        m_Table.SetMenuState( FALSE );
    }
}

BOOL CFiveDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	// TODO: Add your message handler code here and/or call default
    if ( GetDlgItem( IDC_EDT_CHAT ) == pWnd )
    {
        // 處理聊天記錄的鼠標指針
        SetCursor( LoadCursor( NULL, IDC_ARROW ) );
        return TRUE;
    }
    else
	    return CDialog::OnSetCursor(pWnd, nHitTest, message);
}

BOOL CFiveDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if ( WM_KEYDOWN == pMsg->message && VK_RETURN == pMsg->wParam && m_hChat == pMsg->hwnd )
    {
        // 處理聊天輸入窗口的回車消息
        TCHAR str[128];
        // 發送聊天內容
        ::GetWindowText( m_hChat, str, 128 );
        m_Table.Chat( str );
        // 加入聊天記錄
        CString strAdd;
        strAdd.Format( _T("你 說:%s\r\n"), str );
        m_ChatList.SetSel( -1, -1, TRUE );
        m_ChatList.ReplaceSel( strAdd );
        // 清空聊天輸入窗口
        ::SetWindowText( m_hChat, _T("") );
    }
	return CDialog::PreTranslateMessage(pMsg);
}

void CFiveDlg::OnBtnHq() 
{
	// TODO: Add your control notification handler code here
    m_Table.DrawGame();
}

void CFiveDlg::OnBtnLost() 
{
	// TODO: Add your control notification handler code here
	m_Table.GiveUp();
}

void CFiveDlg::OnMenuLeave() 
{
	// TODO: Add your command handler code here
    m_Table.m_conn.Close();
    m_Table.m_sock.Close();
    GetDlgItem( IDC_BTN_BACK )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_HQ )->EnableWindow( FALSE );
    GetDlgItem( IDC_BTN_LOST )->EnableWindow( FALSE );
    GetDlgItem( IDC_CMB_CHAT )->EnableWindow( FALSE );
    // 設置菜單狀態
    m_Table.SetMenuState( TRUE );
    // 設置棋盤等待狀態
    m_Table.SetWait( TRUE );
    // 設置網絡連接狀態
    m_Table.m_bConnected = FALSE;
    // 重新設置對方名稱
    SetDlgItemText( IDC_ST_ENEMY, _T("無玩家加入") );
}

void CFiveDlg::OnMenuPlayagain() 
{
	// TODO: Add your command handler code here
    m_Table.PlayAgain();
}

void CFiveDlg::OnMenuName() 
{
	// TODO: Add your command handler code here
	CNameDlg dlg;
    if ( IDOK == dlg.DoModal() )
    {
        SetDlgItemText( IDC_ST_ME, m_Table.m_strMe );
    }
}

void CFiveDlg::OnMenuStat() 
{
	// TODO: Add your command handler code here
	CStatDlg dlg;
    dlg.DoModal();
}

void CFiveDlg::OnMenuExit() 
{
	// TODO: Add your command handler code here
	OnCancel();
}

void CFiveDlg::OnMenuAbout() 
{
	// TODO: Add your command handler code here
	CAboutDlg dlg;
    dlg.DoModal();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一二三区| 日韩视频一区二区三区在线播放 | 亚洲国产精品精华液2区45| 亚洲品质自拍视频网站| 久久99国产精品尤物| 色婷婷激情久久| 久久久综合视频| 免费观看在线色综合| 99国产精品久久久久| 26uuu久久天堂性欧美| 午夜欧美2019年伦理| 99视频国产精品| 精品日韩一区二区三区免费视频| 奇米亚洲午夜久久精品| 奇米综合一区二区三区精品视频 | 中文字幕乱码久久午夜不卡| 欧美一级理论片| 亚洲视频一区二区在线观看| 狠狠色丁香婷婷综合| 欧美精品国产精品| 亚洲一区日韩精品中文字幕| av一区二区不卡| 国产精品少妇自拍| 国产一区二区三区香蕉| 7777精品伊人久久久大香线蕉经典版下载 | 一区二区久久久| 成人免费视频app| 久久精品欧美一区二区三区不卡| 免费不卡在线观看| 欧美一区三区二区| 麻豆精品一区二区av白丝在线| 91精品国产综合久久婷婷香蕉 | 成人18视频在线播放| 日韩美女视频一区二区在线观看| 国产精品久久久久久亚洲伦 | 亚洲午夜久久久久久久久电影网| av在线播放成人| 国产精品久久久久久久久快鸭 | 国产在线精品一区二区夜色| 久久综合视频网| 国产成人免费在线视频| 日本一区二区三区在线不卡| 成人黄色av网站在线| 中文字幕日韩av资源站| 色婷婷综合久久久| 亚洲国产cao| 日韩一区二区影院| 国产精品一二三在| 亚洲乱码国产乱码精品精可以看| 在线免费观看视频一区| 日日摸夜夜添夜夜添国产精品| 日韩一级免费观看| 国产精品亚洲第一区在线暖暖韩国| 国产精品美女视频| 欧美午夜精品一区二区三区| 免费成人在线网站| 中文字幕中文在线不卡住| 91国产视频在线观看| 免费在线欧美视频| 国产精品素人一区二区| 在线视频你懂得一区| 韩国一区二区视频| 一区二区三区日韩| xf在线a精品一区二区视频网站| 国产精品白丝av| 亚洲一区二区三区四区在线| 精品美女在线观看| 色老头久久综合| 激情综合一区二区三区| 日韩理论片一区二区| 日韩女优视频免费观看| 91在线观看成人| 精品一区二区三区香蕉蜜桃| 亚洲精品午夜久久久| 久久日韩粉嫩一区二区三区| 欧美日韩在线播放| 成人免费福利片| 日韩高清不卡一区| 成人免费在线观看入口| 日韩精品一区二区在线| 91成人网在线| 丁香婷婷综合网| 免费不卡在线视频| 亚洲国产美女搞黄色| 中文字幕亚洲电影| 一级女性全黄久久生活片免费| 日韩欧美国产午夜精品| 欧美三级欧美一级| 色一区在线观看| 成人综合婷婷国产精品久久| 六月丁香综合在线视频| 亚洲黄色在线视频| |精品福利一区二区三区| 日韩女优av电影| 欧美日韩国产综合一区二区 | 亚洲欧美成aⅴ人在线观看| 欧美精品一区二区三区蜜臀| 欧美理论电影在线| 日本电影欧美片| 成人黄色777网| 处破女av一区二区| 国产一区激情在线| 精品制服美女丁香| 蜜臀av一区二区三区| 亚洲第一激情av| 亚洲色图在线播放| 亚洲色图制服诱惑| 自拍偷拍国产精品| 中文字幕免费观看一区| 26uuu成人网一区二区三区| 日韩欧美国产一二三区| 日韩欧美卡一卡二| 精品久久久久久久人人人人传媒 | 欧美日韩精品一区二区在线播放 | 日韩一区二区精品| 日韩一区二区三免费高清| 日韩一区二区三区电影在线观看| 欧美美女网站色| 精品入口麻豆88视频| 久久久久久9999| 国产欧美精品一区二区色综合朱莉| 国产欧美一区二区三区在线老狼| 国产欧美一区视频| 亚洲精品中文在线影院| 亚洲第一搞黄网站| 久久99精品久久久久久国产越南| 久久99精品久久久久久动态图 | 天堂午夜影视日韩欧美一区二区| 五月婷婷久久综合| 美国精品在线观看| 国产在线国偷精品产拍免费yy | 一区精品在线播放| 亚洲午夜av在线| 久久精品免费看| 国产伦精品一区二区三区免费| 成人免费视频一区二区| 欧美在线视频你懂得| 欧美一区二区大片| 国产精品免费视频观看| 一区二区三区日韩欧美精品| 日韩电影在线观看电影| 国产mv日韩mv欧美| 精品视频全国免费看| 亚洲精品一线二线三线无人区| 国产精品久久久久永久免费观看 | 亚洲欧美色综合| 日韩精品欧美精品| 国产精品一卡二卡| 欧美天天综合网| 精品盗摄一区二区三区| 亚洲欧洲精品成人久久奇米网| 午夜日韩在线电影| 粉嫩高潮美女一区二区三区| 欧美午夜一区二区三区免费大片| ww亚洲ww在线观看国产| 亚洲免费在线播放| 美国十次了思思久久精品导航| 成人国产精品免费观看| 91精品国产高清一区二区三区蜜臀 | 国产精品国产自产拍高清av | 国产91在线|亚洲| 欧美嫩在线观看| 国产精品理论片在线观看| 青青青伊人色综合久久| 色哟哟国产精品| 中文字幕第一区二区| 石原莉奈在线亚洲二区| 99久久免费视频.com| 欧美va在线播放| 日韩av网站在线观看| 色综合中文字幕国产 | 黄色日韩三级电影| 91精品福利视频| 中文字幕电影一区| 狠狠v欧美v日韩v亚洲ⅴ| 制服丝袜激情欧洲亚洲| 亚洲精品午夜久久久| av在线播放成人| 国产精品日产欧美久久久久| 久久国产精品色| 日韩一区二区在线观看视频 | 一区二区三区四区不卡视频| 成人一区二区视频| 久久久国产精品麻豆| 日本亚洲欧美天堂免费| 欧美日韩高清一区二区| 亚洲精品少妇30p| 色婷婷国产精品| 亚洲啪啪综合av一区二区三区| 国产mv日韩mv欧美| 日本一区二区免费在线观看视频 | 欧美妇女性影城| 亚洲综合av网| 色综合视频一区二区三区高清| 国产精品伦理在线| 大尺度一区二区| 成人欧美一区二区三区在线播放| 成人精品gif动图一区| 欧美激情综合五月色丁香 | 免费在线成人网|