問題:
我掃描一個檔案夾內的檔案。其中把檔案分為,Document、Video、Audio、Graphics、Other。
開始搜索,如果搜到JPG檔案,那么判斷。m_hTItemGraphics 是否為空
如果 == NULL 那么就m_treeCtrl.InsertItem(......);
但是這樣就出現了一個問題,這樣創建的順序,受到了搜索到檔案型別的順序影響。
如果先搜到Graphics檔案,那么Graphics會在第一個創建。
但是我現在想把這個子節點的順序定死。
比如第一個是Document,第二個Video......
但是我這邊使用TVI_FRIST或者TVI_LAST,那么只會保證一個在最前/最后,其余4個就沒有辦法保證位置。
那么我有什么辦法,可以直接寫死這個的順序呢。
因為我發現如果我在外面創建好子節點,會出現,假設該檔案夾內如果沒有圖片檔案,那么就會創建空子節點。
uj5u.com熱心網友回復:
先把幾個分類插入 并記錄其 HTREEITEM, 后面檢索的檔案按分類插入到相應的節點下uj5u.com熱心網友回復:
在記憶體中存盤資訊,排序,然后再直接插入到treeitem中。uj5u.com熱心網友回復:
TV_SORTCB tvscb;
tvscb.hParent = pnmtv->itemNew.hItem;
tvscb.lParam = 0;
tvscb.lpfnCompare = TreeViewCompareProc;
Tree.SortChildrenCB(&tvscb /*, FALSE*/);
///////////////////////////////////////////////////////////////////////////////////////////////////
int CALLBACK CLeftView::TreeViewCompareProc(LPARAM lparam1,
LPARAM lparam2, LPARAM lparamSort)
{
LPTVITEMDATA lptvid1=(LPTVITEMDATA)lparam1;
LPTVITEMDATA lptvid2=(LPTVITEMDATA)lparam2;
HRESULT hr;
hr = lptvid1->lpsfParent->CompareIDs(0,lptvid1->lpi,lptvid2->lpi);
if (FAILED(hr))
return 0;
return (short)SCODE_CODE(GetScode(hr));
}
uj5u.com熱心網友回復:
see SortChildrenCB and SortChildrenuj5u.com熱心網友回復:
將將得到的結果分類,然后再統計,最后InsertItem到CTreeCtrl中。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/105200.html
標籤:基礎類
上一篇:MFC 動態顯示影像
