樹控制項中使用虛擬列表

2021-04-13 06:19:07 字數 1283 閱讀 6693

插入時使用

tvitem tvitem;

zeromemory(&tvitem, sizeof(tvitem));

tvitem.mask = tvif_text | tvif_image |tvif_children |tvif_selectedimage | tvif_param;

tvitem.psztext = lpsfi.szdisplayname;

tvitem.cchtextmax = lstrlen(lpsfi.szdisplayname);

tvitem.iimage = lpsfi.iicon;

tvitem.cchildren =  lpsfi.dwattributes & sfgao_hassubfolder ? i_childrencallback : 0;

tvitem.iselectedimage = lpsfi.iicon;

tvitem.lparam = false;

tv_insertstruct tvis;

tvis.item = tvitem;

tvis.hparent = hitem;

htreeitem hchild = insertitem(&tvis);

然後void cexptree::ongetdispinfo(nmhdr* pnmhdr, lresult* presult)

*presult = 0;

}展開時

void cexptree::onitemexpanding(nmhdr* pnmhdr, lresult* presult)

} bfirst = 0;

*presult = 0;

}展開後

void cexptree::onitemexpanded(nmhdr* pnmhdr, lresult* presult)

}*presult = 0;

}而列表控制項的虛列表的使用為

插入時void cuploaddlg::add2sellist(int nitem)

然後void cuploaddlg::ongetdispinfoimagelist(nmhdr* pnmhdr, lresult* presult)

}*presult = 0;

}注意差別,列表控制項中使用了

pitem->mask |= lvif_di_setitem ;

這樣使系統在本次請求後儲存資料,不會再次傳送這個item的請求,

否則的話會重新整理一次就請求一次,導致顯示很慢。

而樹控制項裡面還未找到相應的解決辦法,是一直在getdispinfo在。

虛擬列表控制項使用

visual studio net 2003 4 共 4 對本文的評價是有幫助 評價此主題 虛擬列表控制項指具有lvs ownerdata樣式的列表檢視 listview 控制項。該樣式啟用控制項來支援項數達到dword 預設的項數隻擴充套件到int 然而,該樣式的最大便利是可以使記憶體中一次只有乙...

虛擬列表控制項(CListCtrl)

m list.setitemcount 100 3 處理它的通知訊息。五 如何響應虛擬列表的訊息 1 處理 lvn getdispinfo 通知訊息 當虛擬列表控制項需要某個資料的時候,它給父視窗傳送乙個 lvn getdispinfo通知訊息,表示請求某個資料。因此列表的所有者視窗 或者它自己 必...

虛擬列表控制項(CListCtrl)

虛擬列表控制項 clistctrl 2011年02月16日 星期三 下午 02 02 m list.setitemcount 100 3 處理它的通知訊息。五 如何響應虛擬列表的訊息 http www.pudn.com downloads72 sourcecode windows control l...