字体
第(4/5)页
关灯
   存书签 书架管理 返回目录
reate(lpCreateStruct) == -1)

    return -1;

    // TODO: Add your specialized creation code here

    CRect rect;

    GetClientRect(&rect);

    GetListCtrl().InsertColumn(0, "用户名" );

    GetListCtrl().InsertColumn(1, "登录时间");

    GetListCtrl().InsertColumn(2, "地址");

    return 0;

    }

    当窗口大小变化时,会激发WM_SIZE 消息。利用上述办法可以为此消息编写响应函数,

    代码如下:

    void CChattersListView::OnSize(UINT nType, int cx, int cy)

    {

    CListView::OnSize(nType, cx, cy);

    // TODO: Add yourcomssage handler code here

    GetListCtrl().SetColumnWidth(0, cx/3);

    GetListCtrl().SetColumnWidth(1, cx/3);

    GetListCtrl().SetColumnWidth(2, cx/3);

    }

    当有新用户加入或者有用户退出时,应该更新列表,为此需要两个更新函数,分别用于

    添加用户和删除用户的cāo作。

    首先为该类添加一个添加用户信息的函数:

    枫叶文学网www.fywxw.com

    第11 章 网络编程

    ·293·

    void AddChatter(CString Ncom , CString IPAddress, UINT Port);

    各参数意义如下。

    ? Ncom:用户名。

    ? IPAddress:客户端IP 地址。

    ? Port:客户端的端口号。

    为此函数编写代码如下:

    void CChattersListView::AddChatter(CString Ncom, CString IPAddress, UINT Port)

    {

    //chā入用户名

    LVITEM lvi;

    lvi.mask = LVIF_TEXT;

    lvi.iItem = m_Row++;

    lvi.iSubItem = 0;

    lvi.pszText = Ncom.GetBuffer(Ncom.GetLength());

    int iActualItem = GetListCtrl().InsertItem(&lvi);

    //chā入登录时间

    //得到系统时间

    tcom_t t;

    struct tm *ptm;

    tcom(&t);

    ptm = localtcom(&t);

    //将其转化成字符形式

    CString sDat
上一页 目录 下一页