一直想實現這個,不是WEB控件,沒有現成的辦法,網上查了好久,都是重載,也有說用雙DC繪,但我都沒實現成。這陣雙腳腫得厲害,心情不是很好,但這個居然讓我實現了,頗感安慰。
建一個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,這辦法好不好?套用那個“官”說的話,反正我覺得很好!轉貼寫上出處,謝謝。