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