基于MFC的多人聊天室


基于CSocket编程的C++多人聊天室,使用MFC,C/S,服务端可以看到在线人数
资源截图
代码片段和文件信息
// Chat.cpp : 实现文件
//

#include “stdafx.h“
#include “客户端.h“
#include “Chat.h“
#include “afxdialogex.h“


// CChat 对话框

IMPLEMENT_DYNAMIC(CChat CDialogEx)

CChat::CChat(CWnd* pParent /*=NULL*/)
: CDialogEx(CChat::IDD pParent)
 m_receiveMsg(_T(““))
 m_sendMsg(_T(““))
{

}

CChat::~CChat()
{
}

void CChat::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX IDC_RECEIVEMSG m_receiveMsg);
DDX_Text(pDX IDC_SENDMSG m_sendMsg);
DDX_Control(pDX IDC_RECEIVEMSG m_receiveCtrl);
}


BEGIN_MESSAGE_MAP(CChat CDialogEx)
ON_BN_CLICKED(IDC_SEND &CChat::OnBnClickedSend)
ON_BN_CLICKED(IDC_CANCEL &CChat::OnBnClickedCancel)
ON_WM_CLOSE()
END_MESSAGE_MAP()


// CChat 消息处理程序


void CChat::OnBnClickedSend()
{
// TODO: 在此添加控件通知处理程序代码
CTime time;
time = CTime::GetCurrentTime();  //获取现在时间
CString strTime = time.Format(“%Y-%m-%d %H:%M:%S  “);
theApp.head.type = 3;
UpdateData(true);
m_receiveMsg += strTime + (CString)“(“ + theApp.m_userID + (CString)“) “ + theApp.m_userNAME + (CString)“
    “ + m_sendMsg + (CString)“
“;
CHead Msg;
Msg.type = 3;
strcpy_s(Msg.fromID(CStringA)theApp.m_userID);
strcpy_s(Msg.usermsg.NAME(CStringA)theApp.m_userNAME);
strcpy_s(Msg.usermsg.ID(CStringA)theApp.m_userID);
strcpy_s(Msg.toID(CStringA)m_toID);
strcpy_s(Msg.iptheApp.head.ip);
strcpy_s(Msg.msg(CStringA)m_sendMsg);
m_sendMsg = ““;
UpdateData(false);
m_receiveCtrl.LineScroll(m_receiveCtrl.GetLineCount()-1);
theApp.m_tcp->Send(&Msgsizeof(Msg));
}


void CChat::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
OnClose();
CDialogEx::OnCancel();
}


BOOL CChat::OnInitDialog()
{
CDialogEx::OnInitDialog();

// TODO:  在此添加额外的初始化
m_caption =(CString)“正与(“ +  m_toID + (CString)“) “ + m_name + (CString)“ 聊天中“;
SetWindowTextW(m_caption);//设置对话框标题
return TRUE;  // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}


void CChat::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
theApp.m_userMsg.erase(m_toID);
CDialogEx::OnClose();
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)