字体
第(2/6)页
关灯
   存书签 书架管理 返回目录
 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
上一页 目录 下一页