⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chat.cpp

📁 本代码是基于LINUX系统下的
💻 CPP
字号:
// Chat.cpp : implementation file
//

#include "stdafx.h"
#include "Client.h"
#include "Chat.h"
#include "ClientEngine.h"
#include "SessionMessage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CChat dialog


//##ModelId=46417F3901E2
CChat::CChat(CWnd* pParent /*=NULL*/)
	: CDialog(CChat::IDD, pParent)
{
	//{{AFX_DATA_INIT(CChat)
	m_chatMessage = _T("");
	m_sendMessage = _T("");
	m_contactor = 0;
	//}}AFX_DATA_INIT
}


//##ModelId=46417F3901ED
void CChat::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CChat)
	DDX_Text(pDX, IDC_CHAT_EDIT, m_chatMessage);
	DDX_Text(pDX, IDC_SEND_EDIT, m_sendMessage);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CChat, CDialog)
	//{{AFX_MSG_MAP(CChat)
	ON_BN_CLICKED(IDC_SEND_KT, OnSend)
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CChat message handlers

//##ModelId=46417F3901F6
BOOL CChat::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CWnd *pEdit=GetDlgItem(IDC_SEND_EDIT);
	pEdit->SetFocus();
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

//##ModelId=46417F3901F8
void CChat::OnSend() 
{
	if(m_contactor->online == 0)
	{
		m_chatMessage = m_chatMessage + "\r\n" +  
			"The person you are chaating" +  
			"\r\n" + "with is offline now.";
		UpdateData(FALSE);

		CEdit *pEdit;
		pEdit=(CEdit *)GetDlgItem(IDC_CHAT_EDIT);
		int i=pEdit->GetLineCount();
		pEdit->LineScroll(i,0);

		CWnd *pEditSend=GetDlgItem(IDC_SEND_EDIT);
		pEditSend->SetFocus();

		return;
	}

	UpdateData();
	m_sendMessage.TrimLeft();
	m_sendMessage.TrimRight();

	CClientEngine* engine = CClientEngine::getInstance();
	CUser* user = engine->getMyseft();

	if(!m_sendMessage.IsEmpty())
	{
		engine->sendMessage(*m_contactor, m_sendMessage); 

		m_chatMessage = m_chatMessage + "\r\n" +  
			user->name + ": " + m_sendMessage;

		m_sendMessage = "";

		UpdateData(FALSE);

		CEdit *pEdit;
		pEdit=(CEdit *)GetDlgItem(IDC_CHAT_EDIT);
		int i=pEdit->GetLineCount();
		pEdit->LineScroll(i,0);

		CWnd *pEditSend=GetDlgItem(IDC_SEND_EDIT);
		pEditSend->SetFocus();
	}
}

void CChat::displayReveMessage(CString& message)
{   
	BringWindowToTop();

	m_chatMessage = m_chatMessage + "\r\n" + 
		m_contactor->name + " : " + message;
	
	CEdit *pEdit;
	pEdit=(CEdit *)GetDlgItem(IDC_CHAT_EDIT);

	pEdit->SetWindowText(m_chatMessage);

	int i=pEdit->GetLineCount();
	pEdit->LineScroll(i,0);
}

//main program eixt
void CChat::PostNcDestroy() 
{
	// TODO: Add your specialized code here and/or call the base class
	CDialog::OnClose();
	delete this;
	CDialog::PostNcDestroy();
}

void CChat::OnClose() 
{
//	CClientEngine* engine = CClientEngine::getInstance();
// 	engine->removeByID(m_contactor->getIDFormatOfInt());
	ShowWindow(SW_HIDE);

//	CDialog::OnClose();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -