字体
第(2/5)页
关灯
   存书签 书架管理 返回目录
 新建一个MFC 工程,取名为ChatServer。利用AppWizard 创建SDI 程序,在第一步中

    枫叶文学网www.fywxw.com

    第11 章 网络编程

    ·289·

    选择“Single Doccomnt”项,在第四步中选中“Windows Sockets”复选框,如图11-2 所示。

    在最后一步的“Base Class”下拉列表中选择“ClistView”作为基类,其他选项保持默认,单

    击“Finish”按钮即可完成工程的创建,如图11-3 所示。

    图11-2 选中“Windows Sockets”复选框 图11-3 选择“ClistView”作为基类

    (2)封装消息类

    本程序中为消息建立一个类CMsg,它的父类是CObject。在“ChatServer classes”上单

    击右键,在弹出的对话框中选择“New Class”,如图11-4 所示。在弹出的“New Class”对话

    框中的“Class type”下拉列表中选择“Generic Class”项,在“Ncom”栏中填写类名称CMsg,

    在“Derived From”栏中填写其父类名称CObject,如图11-5 所示。单击“OK”按钮,弹出

    提示对话框,单击“确定”即可。

    图11-4 为工程新建一个类 图11-5 新建消息类CMsg

    在类CMsg的定义(文件“Msg.h”)中加入宏DECLARE_DYNCREATE(CMsg),声明此

    宏可以使得由CObject继承来的类在程序运行的时候能够动态地创建。然后为其加入成员变量

    和成员函数,分别如表11-5和表11-6所示。

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·290·

    表11-5 CMsg 类成员变量及其说明

    成员变量 说明

    CString m_strText 消息的内容

    BOOL m_bClose 连接是否关闭

    UINT code 消息的种类

    表11-6 CMsg 类成员函数及其说明

    成员函数 说明

    void Init() 对成员变量进行初始化

    virtual void Serialize(CArchive &ar) 进行数据的发送和接收

    完成消息类的定义后,要在文件“Msg.cpp”中实现此类。首先要声明另外一个宏

    IMPLEMENT_DYNCREATE(CMsg, CObject),它是与宏DECLARE_DYNCREATE 相对应的

    在类实现时声明的宏。然后为其添加代码。在类的构造函数中对成员变量进行初始化,代码

    如下:

    CMsg::CMsg()

    {

    Init();

    }

    函数Init()代码如下:

    void CMsg::Init()

    {

    code = 0;

    m_bClose = FALSE;

    m_strText = _T("");

    }

    最后是重
上一页 目录 下一页