建一个LISTCONTROL应该没啥好说的吧,直接拉一个MFC的工具就成.
初始化一个函数
int InitListControl()
{
_mylist.ModifyStyle(0l,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS|LVS_NOSORTHEADER);
_mylist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);
_mylist.InsertColumn(0,L"隐藏");
.
.
.
_mylist.SetColumnWidth(0,80);
.
.
.
return 0;
}
刷新数据弄一个函数
void ReListData(BOOL _b)
{
LockWindowUpdate();
//更新内容
int num=games.GetCount();
if(!num)return;
if(!_b)
{
_mylist.DeleteAllItems();
for(int i=0;i<num;i++)
{
_mylist.InsertItem(i,L" ");
}
}
for(int i=0;i<num;i++)
{
_game *lpgame=games.GetAt(i);
CString str=_mylist.GetItemText(i,0);
if(str.Compare(lpgame->user)!=0)
_mylist.SetItemText(i,0,lpgame->user);
.
.
.
}
UnlockWindowUpdate();
}
关键可不是这UplockWindowUpdate()这二个函数,而是里面的字符串比较,当不一样时才赋值,效果是刷新时只刷新数据更新的那个ITEM,这办法好不好?