6.0 程序设计从入门到精通
·310·
1.创建工程
同服务器端的情况一样,创建一个MFC 工程,取名为ChatClient。将前面编写好的封装
消息的类的文件“Msg.h”和“Msg.cpp”拷贝到ChatClient 工程所在目录,然后加入到工程
中。将文件“Msg.cpp”中的语句#include "ChatServer.h"改为#include "ChatClient.h"。
2.编写界面
首先新建一个类CMessageView,它负责聊天信息的显示,其基类为CEditView。重载此
类的PreCreateWindow()函数virtual BOOL PreCreateWindow(CREATESTRUCT& cs),代码如
下:
BOOL CMessageView::PreCreateWindow(CREATESTRUCT& cs)
{
BOOL ret = CEditView::PreCreateWindow(cs);
cs.style = AFX_WS_DEFAULT_VIEW |
WS_VSCROLL |
ES_AUTOVSCROLL |
ES_MULTILINE |
ES_NOHIDESEL;
return ret;
}
再为此类增加一个显示聊天信息的函数void ShowMessage(LPCTSTR lpszMessage),代码
如下:
void CMessageView::ShowMessage(LPCTSTR lpszMessage)
{
CString strTemp = lpszMessage;
strTemp += _T("\r\n");
int len = GetWindowTextLength();
GetEditCtrl().SetSel(len,len);
GetEditCtrl().ReplaceSel(strTemp);
}
接着新建一个类CChattersView,用于用户列表的显示,它的基类是CTreeView。为其添
加两个成员函数void AddToChattersList(CString sNcom)和void ClearChattersList(),分别用于
chā入一个新的表项和清除所有表项。代码如下:
void CChattersView::ClearChattersList()
{
GetTreeCtrl().DeleteAllItems();
}
void CChattersView::AddToChattersList(CString sNcom)
{
GetTreeCtrl().InsertItem(sNcom, 0, 0, TVI_ROOT, TVI_LAST);
枫叶文学网www.fywxw.com
第11 章 网络编程
·311·
}
接下来新建类CInputV