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

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

?? chatappw.cpp

?? 1ChatApp.zip
?? CPP
字號:
// This is the main project file for VC++ application project 
// generated using an Application Wizard.
#pragma once

#include "stdafx.h"
#include "Chat.h"

//Chat window class
__gc class CChatForm : public Form 
{ 
private:
	String *pCaption;	// Caption of the CChatForm
	int	nWidth;			// Width of the CChatForm
	int	nHeight;		// height of the CChatForm

	TextBox *pTxtMessage;
	Label *pLblMessage;
	Label *pLblLoggedOnUser;

	ListBox* pLstBoxMessage;
	ListBox* pchkdLstBoxUserList;
	//CheckedListBox* pchkdLstBoxUserList;

	Button *pBtnSend;
	Button *pBtnSave;
	Button *pBtnExit;

	CChat* pChat;
	
	Thread* pChatThread;
	bool bThreadStarted;
	Encoding* pASCII;

public: 
	CChatForm()
	{
		pCaption = "Chat Dialog";
		nWidth = 500;
		nHeight = 255;
		bThreadStarted = false;

		//Prepare the Chat form
		InitForm();

		pChat = new CChat(pLstBoxMessage, pchkdLstBoxUserList);
	}

	void ~CChatForm() 
	{ 
		// Form is being destroyed. Do any necessary cleanup here. 
		Form::Dispose(); 
	}

	void InitForm()
	{
		// Basic WinForm Settings
		Text = pCaption;
		Size = Drawing::Size(nWidth, nHeight);
		set_MaximizeBox(false);
		//set_Bounds(Rectangle(0,0,200,200));

		pTxtMessage = new TextBox();
		pTxtMessage->Name="Edit_message";
		pTxtMessage->Size = Drawing::Size(280, 20);	
		pTxtMessage->TabIndex = 0;
		pTxtMessage->Location = Drawing::Point(10, 195);

		pLstBoxMessage = new ListBox();
		pLstBoxMessage->Name="ListBox_message";
		pLstBoxMessage->TabIndex = 1;
		pLstBoxMessage->set_HorizontalScrollbar(true);
		pLstBoxMessage->Location = Drawing::Point(10, 10);
		pLstBoxMessage->Size = Drawing::Size(350, 160);	
		pLstBoxMessage->Enabled = false;

		//pchkdLstBoxUserList = new CheckedListBox();
		pchkdLstBoxUserList = new ListBox();
		pchkdLstBoxUserList->Name="CheckedListBox_UserList";
		//pchkdLstBoxUserList->ThreeDCheckBoxes = true;
		//pchkdLstBoxUserList->CheckOnClick = true;
		//pchkdLstBoxUserList->HorizontalScrollbar = true;
		pchkdLstBoxUserList->set_HorizontalScrollbar(true);
		pchkdLstBoxUserList->TabIndex = 2;
		pchkdLstBoxUserList->Location = Drawing::Point(380, 30);
		pchkdLstBoxUserList->Size = Drawing::Size(100, 140);
		pchkdLstBoxUserList->Enabled = false;

		pLblLoggedOnUser = new Label();
		pLblLoggedOnUser->Text="Logged on Users:";
		pLblLoggedOnUser->Size = Drawing::Size(100, 20);		
		pLblLoggedOnUser->Location = Drawing::Point(380, 10);

		pLblMessage = new Label();
		pLblMessage->Text="Type the message here:";
		pLblMessage->Size = Drawing::Size(150, 20);		
		pLblMessage->Location = Drawing::Point(10, 175);

		pBtnSend = new Button();
		pBtnSend->Text = "Se&nd";
		pBtnSend->Size = Drawing::Size(55, 20);
		pBtnSend->TabIndex = 3;
		pBtnSend->Location = Drawing::Point(300, 195);
		pBtnSend->Click += (new EventHandler(this, &CChatForm::OnSendButtonClick));

		pBtnSave = new Button();
		pBtnSave->Text = "&Save";
		pBtnSave->Size = Drawing::Size(55, 20);
		pBtnSave->TabIndex = 4;
		pBtnSave->Location = Drawing::Point(362, 195);
		pBtnSave->Click += (new EventHandler(this, &CChatForm::OnSaveButtonClick));

		pBtnExit = new Button();
		pBtnExit->Text = "E&xit";
		pBtnExit->Size = Drawing::Size(55, 20);
		pBtnExit->TabIndex = 5;
		pBtnExit->Location = Drawing::Point(425, 195);
		pBtnExit->Click += (new EventHandler(this, &CChatForm::OnExitButtonClick));

		Controls->Add(pTxtMessage);
		Controls->Add(pLblMessage);
		Controls->Add(pLblLoggedOnUser);
		Controls->Add(pLstBoxMessage);
		Controls->Add(pchkdLstBoxUserList);
		Controls->Add(pBtnSend);
		Controls->Add(pBtnSave);
		Controls->Add(pBtnExit);

		//Set the pBtnSend as the default
		Form::set_AcceptButton(pBtnSend);

		//Initalize the Chat session
		pChat->Initialize();
	}

	//Handles the Exit button
	void OnExitButtonClick (Object *sender, EventArgs *e)
	{
		if ( bThreadStarted && (pChatThread != NULL) )
		{
			CChat::m_bDone = true;
			//Notify the listener, User is closing the app 
			String* pStrMsg;
			pStrMsg = S":@";

			Byte bytearrayBuffer [] = new Byte[pStrMsg->Length + 1];
			int nLen = pASCII->GetBytes( pStrMsg->ToCharArray(), 0, pStrMsg->Length, bytearrayBuffer, 0);
			int nECode = CChat::m_pClient->Send(bytearrayBuffer, 2, pChat->GetRemoteEP());

			//Raises a ThreadAbortException in the thread on which it is invoked, 
			//to begin the process of terminating the thread. 
			pChatThread->Abort();
			//Blocks the calling thread until a thread terminates
			pChatThread->Join();
			
			//Show the message in the list box
			pLstBoxMessage->Items->Add(S"Thank you for using My Chat App !!!");
			pLstBoxMessage->Refresh();

			//Terminate the Chat Session
			pChat->Terminate();
			Thread::Sleep(2000);
		}

		Close();
	}
	
	//Handles the Save button
	void OnSaveButtonClick (Object *sender, EventArgs *e)
	{
		//Code here for saving the chat content
		int nCount = pLstBoxMessage->Items->Count;
		String *pStrMessage, *pStrTemp;
		for (int i=0; i < nCount; i++)
		{
			pStrTemp = pLstBoxMessage->Items->get_Item(i)->ToString();
			pStrMessage = String::Concat(pStrMessage, S"\n", pStrTemp);
		}

		//Save pStrItem in a file
		SaveFileDialog* pFileDlg = new SaveFileDialog();
		pFileDlg->DefaultExt = "txt";
		pFileDlg->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
		pFileDlg->FilterIndex = 2;
	    pFileDlg->RestoreDirectory = true;
		if (pFileDlg->ShowDialog() == DialogResult::OK) 
		{
			Stream *pStream; 
			if((pStream = pFileDlg->OpenFile()) != NULL)
			{
				Byte bytearrayBuffer [] = new Byte[pStrMessage->Length + 1];
				int nLen = pASCII->GetBytes( pStrMessage->ToCharArray(), 0, pStrMessage->Length, bytearrayBuffer, 0);
				pStream->Write(bytearrayBuffer, 0, pStrMessage->Length);
				pStream->Close();
			}
		}
	}

	//Handles the Send button
	void OnSendButtonClick (Object *sender, EventArgs *e)
	{
		if (!bThreadStarted)
		{
			pChatThread = new Thread(new ThreadStart(0, CChat::Listener));
			pChatThread->Start(); //Start the thread
			pASCII = Encoding::ASCII;
			bThreadStarted = true;
		}

		//Get the text from the message window and send it to active user
		String* pStrTemp = pTxtMessage->Text;
		String* pStrMsg = pStrTemp->Trim();
		if (pStrMsg->Length == 0)
		{
			//Nothing to send
			return;
		}
		else
		{
			//Format the user typed message
			String* pHostName = pChat->GetChatHostName();
			int nItemIndex = pchkdLstBoxUserList->FindStringExact(pHostName);
			if (nItemIndex == ListBox::NoMatches)
			{
				//pchkdLstBoxUserList->Items->Add(pHostName, true);
				pchkdLstBoxUserList->Items->Add(pHostName);
			}

			pStrMsg = String::Concat(pChat->GetChatHostName(), S":", pStrMsg);
		}

		Byte bytearrayBuffer [] = new Byte[pStrMsg->Length + 1];
		
		//Send data to remote peer
		int nLen = pASCII->GetBytes( pStrMsg->ToCharArray(), 0, pStrMsg->Length, bytearrayBuffer, 0);
		int nECode = CChat::m_pClient->Send(bytearrayBuffer, nLen, pChat->GetRemoteEP());
		if(nECode <= 0) 
		{
			String* pStr;
			pStr = String::Format("Error in send : {0}", nECode.ToString());
			pLstBoxMessage->Items->Add(pStr);
			//pLstBoxMessage->DisplayMember(
		}

		//Empty the Edit window
		pTxtMessage->Text = "";
		pTxtMessage->Focus();
	}
};

// This is the entry point for this application
int _tmain(void)
{
    // TODO: Please replace the sample code below with your own.
    Application::Run(new CChatForm()); 
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利电影网| 久久人人超碰精品| 热久久免费视频| 在线观看一区不卡| 一区二区三区四区激情| 日本高清不卡在线观看| 午夜激情一区二区| 日韩三级视频在线看| 国产中文字幕一区| 国产精品不卡一区二区三区| 一本色道久久综合精品竹菊| 亚洲第一激情av| 日韩欧美在线123| 成人三级在线视频| 亚洲一区二区在线免费观看视频 | 91视频在线观看免费| 亚洲综合久久久久| 日韩一二在线观看| 成人动漫一区二区在线| 亚洲国产欧美在线| 久久九九久精品国产免费直播| 91亚洲男人天堂| 日本不卡一二三| 国产精品免费丝袜| 91精品啪在线观看国产60岁| 国产高清无密码一区二区三区| 亚洲麻豆国产自偷在线| 日韩欧美国产三级| 91丨porny丨户外露出| 久久99精品国产.久久久久久| 国产精品免费久久| 日韩一区二区在线看| 成人综合婷婷国产精品久久免费| 亚洲国产精品久久人人爱蜜臀 | 欧美日韩视频第一区| 国产中文字幕一区| 亚洲va韩国va欧美va精品| 欧美精品一区二区三区蜜臀| 色天使色偷偷av一区二区| 国产精品一二三| 视频在线观看国产精品| 中文在线一区二区| 日韩一区二区三免费高清| bt7086福利一区国产| 国产做a爰片久久毛片| 亚洲成av人片在线观看无码| 国产精品麻豆网站| 欧美大片国产精品| 欧美日韩成人综合在线一区二区 | 91在线高清观看| 国产另类ts人妖一区二区| 丝袜美腿一区二区三区| 久久先锋影音av鲁色资源网| 日韩精品福利网| 久久亚洲免费视频| 精品视频全国免费看| 国产不卡视频在线观看| 日韩成人精品视频| 亚洲一区二区三区爽爽爽爽爽 | 免费观看一级特黄欧美大片| 伊人开心综合网| 日本一区二区成人| www国产精品av| 91精品啪在线观看国产60岁| 欧美三片在线视频观看| 99精品在线观看视频| 高清不卡在线观看| 国产**成人网毛片九色 | 国产成人高清在线| 精品一区二区久久久| 婷婷丁香激情综合| 三级在线观看一区二区| 亚洲一区视频在线| 亚洲一线二线三线久久久| 亚洲婷婷综合久久一本伊一区 | 2023国产精品自拍| 精品久久久久一区| 26uuu精品一区二区在线观看| 欧美xxx久久| 久久亚洲二区三区| 国产亚洲欧美日韩在线一区| 久久―日本道色综合久久| 国产欧美中文在线| 国产精品天干天干在线综合| 国产欧美日韩久久| ㊣最新国产の精品bt伙计久久| 中文字幕欧美区| √…a在线天堂一区| 精品无人区卡一卡二卡三乱码免费卡 | 免费观看在线综合色| 看电影不卡的网站| 国产精品亚洲成人| 成人av资源站| 欧美日韩精品一区二区天天拍小说| 欧美日韩免费观看一区二区三区 | 成人一级黄色片| 99国产精品久久久久久久久久久| 色综合av在线| 欧美日韩国产系列| 久久综合九色综合欧美亚洲| 中文字幕不卡在线观看| 亚洲精品中文在线| 天天综合色天天综合| 久久国产精品露脸对白| 国产精品996| 色一区在线观看| 日韩一级免费观看| 欧美国产精品久久| 亚洲你懂的在线视频| 日日夜夜精品视频免费| 国产一区在线看| 91麻豆国产自产在线观看| 欧美一区二区三区免费在线看| 久久噜噜亚洲综合| 国产精品原创巨作av| 91成人在线精品| 26uuu色噜噜精品一区| 亚洲人吸女人奶水| 美国三级日本三级久久99 | 国产综合久久久久久鬼色| 成人黄动漫网站免费app| 欧美性猛片aaaaaaa做受| 日韩无一区二区| 综合激情网...| 男女激情视频一区| 色激情天天射综合网| www激情久久| 午夜免费欧美电影| 成人美女视频在线观看18| 欧美一个色资源| 国产精品国产三级国产aⅴ无密码| 无码av免费一区二区三区试看| 成人免费黄色大片| 日韩美女天天操| 亚洲电影中文字幕在线观看| 国产经典欧美精品| 欧美日韩第一区日日骚| 亚洲三级在线播放| 国产精品综合二区| 欧美一级高清片在线观看| 一区二区三区国产| 高清不卡一二三区| 欧美哺乳videos| 日本一区中文字幕| 在线观看国产日韩| 中文字幕一区二区三区不卡在线| 国产精品原创巨作av| 欧美妇女性影城| 亚洲国产精品久久人人爱 | 欧美日韩一级视频| 成人欧美一区二区三区小说| 久久精品国产久精国产| 在线不卡中文字幕| 亚洲永久免费av| 欧美羞羞免费网站| 亚洲人成伊人成综合网小说| 风间由美一区二区三区在线观看| 日韩一区二区三| 热久久久久久久| 欧美一二三四区在线| 免费观看91视频大全| 欧美夫妻性生活| 日本亚洲视频在线| 欧美一区二区福利视频| 日韩成人一区二区三区在线观看| 91论坛在线播放| 一级女性全黄久久生活片免费| 欧洲精品一区二区| 午夜视频在线观看一区| 欧美日韩国产一级片| 丝袜亚洲精品中文字幕一区| 在线成人免费观看| 人人爽香蕉精品| 精品国产91久久久久久久妲己| 蜜臀a∨国产成人精品| 精品久久久久久综合日本欧美| 久久国产精品露脸对白| 久久久久九九视频| 国产成人精品综合在线观看| 国产精品灌醉下药二区| 99国产麻豆精品| 一区二区三区四区不卡在线| 欧美视频在线一区二区三区| 亚洲va天堂va国产va久| 日韩一级片在线观看| 国产精品综合二区| 综合av第一页| 欧美日韩免费在线视频| 久99久精品视频免费观看| 国产亚洲欧美在线| 色综合久久久久网| 丝袜美腿亚洲综合| 久久久久久夜精品精品免费| 国产高清不卡二三区| 亚洲三级电影网站| 91.麻豆视频| 粉嫩蜜臀av国产精品网站| 亚洲欧美偷拍卡通变态| 7777女厕盗摄久久久| 国产精品一级在线|