Address, Port);
lvi.mask = LVIF_TEXT;
lvi.iSubItem = 2;
lvi.pszText = sIPPort.GetBuffer(sIPPort.GetLength());
GetListCtrl().SetItem(&lvi);
}
添加一个在列表中删除某用户的cāo作,函数名为void DeleteChatter(CString Ncom),其中
Ncom 就是用户名。代码如下:
void CChattersListView::DeleteChatter(CString Ncom)
{
LVFINDINFO lvfi;
lvfi.flags = LVFI_STRING;
lvfi.psz = Ncom.GetBuffer(Ncom.GetLength());
//在列表中查找用户名,得到其索引值
int nFoundAt = GetListCtrl().FindItem(&lvfi);
//如果找到则将其删除
if(nFoundAt != -1)
GetListCtrl().DeleteItem(nFoundAt);
}
(4)编写聊天信息界面
新建一个类,取名为CChatView,其父类为CView,该类用于显示聊天信息。为其添加
一个成员变量:CEdit m_EditBox,负责聊天信息的显示。
为WM_CREATE 消息添加响应函数,在此函数中,对m_EditBox 进行初始化,代码如
下:
int CChatView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
枫叶文学网www.fywxw.com
第11 章 网络编程
·295·
// TODO: Add your specialized creation code here
CRect rect;
GetClientRect(&rect);
m_EditBox.Create(WS_VISIBLE |
WS_BORDER |
WS_CHILD |
ES_MULTILINE |
WS_VSCROLL,
rect, this , 0);
return 0;
}
当窗口大小变化时,会激发WM_SIZE 消息。为此消息编写响应函数,代码如下:
void CChatView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: Add yourcomssage handler code here
m_EditBox.MoveWindow(0 , 0