CTreeCtrl是windows界面开发中经常用到,也是windows系统中经常见到的一种控件,比如文件夹目录,那就是一个典型的应用,不过,很多资料中,对于CTreeCtrl的数据的处理,存在一些问题。我们可以先看下面的代码:
void CFileTreeCtrl::InitTreeCtrl(const CString& strDir, HTREEITEM hItem)
{
CFileFind finder;
CString strFindDir = strDir;
strFindDir += _T("\\*.*");
BOOL bWorking = finder.FindFile(strFindDir);
while(bWorking)
{
HTREEITEM hItemTmp;
bWorking = finder.FindNextFile();
if(finder.IsDirectory() && !finder.IsDots())
{
CString szFileName = finder.GetFileName();
CString strNextDir = finder.GetFilePath();
SHFILEINFO sfi;
SHGetFileInfo(strNextDir+_T("\\"), 0, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX|SHGFI_DISPLAYNAME);
TV_INSERTSTRUCT TCItem;
ZeroMemory(&TCItem,sizeof(TV_INSERTSTRUCT));
TCItem.hInsertAfter = TVI_LAS