⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_38143.htm

📁 vc
💻 HTM
字号:
<p>
序号:38143 发表者:风吹沙 发表日期:2003-05-01 00:49:20
<br>主题:不能得到更深层的目录?
<br>内容:<BR>我想在基于explorer风格的CLeftView视图中得到电脑的所有文件夹目录,像资源管理器一样,可是为什么下面的代码只有得到根目录下的一层目录,而不能得到更深层的目录呢?希望大侠们帮助解决一下,谢谢。<BR>void CLeftView::OnInitialUpdate()<BR>{<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CTreeView::OnInitialUpdate();<BR>&nbsp;&nbsp;&nbsp;&nbsp;   CTreeCtrl &amp;tree=GetTreeCtrl();<BR>&nbsp;&nbsp;&nbsp;&nbsp;tree.DeleteAllItems();<BR>&nbsp;&nbsp;&nbsp;&nbsp;HTREEITEM htreeitem=tree.InsertItem("MyComputer");<BR>&nbsp;&nbsp;&nbsp;&nbsp;   char buffer[MAX_PATH];<BR>&nbsp;&nbsp;&nbsp;&nbsp;char *ptr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString str;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int index=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;::GetLogicalDriveStrings(MAX_PATH,buffer);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ptr=buffer;<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(*ptr)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{ str=ptr;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tree.InsertItem (str,htreeitem);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptr=ptr+strlen(ptr)+1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;DWORD dwStyle=GetWindowLong(GetTreeCtrl().GetSafeHwnd (),GWL_STYLE);<BR>&nbsp;&nbsp;&nbsp;&nbsp;dwStyle|=TVS_HASLINES+TVS_HASBUTTONS+TVS_LINESATROOT;<BR>&nbsp;&nbsp;&nbsp;&nbsp;SetWindowLong(GetTreeCtrl().GetSafeHwnd(),GWL_STYLE,dwStyle);<BR>&nbsp;&nbsp;&nbsp;&nbsp;SetRedraw(TRUE);<BR><BR><BR>}<BR>oid CLeftView::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your control notification handler code here<BR>  HANDLE hFind;<BR>&nbsp;&nbsp;&nbsp;&nbsp;WIN32_FIND_DATA dataFind;<BR>&nbsp;&nbsp;&nbsp;&nbsp;HTREEITEM htree=GetTreeCtrl().GetSelectedItem();<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString path=GetTreeCtrl().GetItemText(htree);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;if(htree&gt;=0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL bMoreFiles=TRUE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hFind=FindFirstFile(path+"*.*",&amp;dataFind);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(hFind!=INVALID_HANDLE_VALUE&amp;&amp;bMoreFiles==TRUE)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dataFind.dwFileAttributes<BR>==FILE_ATTRIBUTE_DIRECTORY)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTREEITEM hChild=GetTreeCtrl().InsertItem(dataFind.cFileName,htree);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bMoreFiles=FindNextFile(hFind,&amp;dataFind);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;*pResult = 0;<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:yhsz 回复日期:2003-05-01 01:09:45
<br>内容:晕,<BR>你只实现了HTREEITEM htreeitem=tree.InsertItem("MyComputer"); ;<BR>这本来就只有一层的深度吗! 如果想更多的层,必须生成其它的 HTREEITEM<BR><BR>不知道是不是这样?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -