
2.用向导创建其成员变量CTreeCtrl
m_trdisktree
3.创建TVN_
SELCHANGED响应事件,Edit
Code键
4.代码如下
void
CDiskCataDlg::OnSelchangedTrdisktree(NMHDR*
pNMHDR,
LRESULT*
pResult)
{
NM_TREEVIEW*
pNMTreeView
=
(NM_TREEVIEW*)pNMHDR
CFileFind
filefd
HTREEITEM
parent
HTREEITEM
rootitem=m_trdisktree.GetSelectedItem()
if(m_trdisktree.GetChildItem(rootitem))return
parent=rootitem
CString
rootstr=m_trdisktree.GetItemText(rootitem)
CString
temp
CString
lstr
if(rootstr.Find("\\")==2)
{
lstr.Format("%s*.*",rootstr)
}
else
{
CString
strparent
while(1)
{
parent=m_trdisktree.GetParentItem(parent)
strparent=m_trdisktree.GetItemText(parent)
if(strparent.Find("\\")==2)
goto
end
temp+=strparent
temp+="\\"
}
end:
CString
root=m_trdisktree.GetItemText(parent)
lstr.Format("%s%s%s\\*.*",root,temp,rootstr)
}
BOOL
bfinded=filefd.FindFile(lstr)
while(bfinded)
{
bfinded=filefd.FindNextFile()
CString
filepath
if(filefd.IsDirectory()&&!filefd.IsDots()){
SHGetFileInfo(filefd.GetFilePath(),0,&fileinfo,sizeof(fileinfo),
SHGFI_ICON)
imindex=imlst.Add(fileinfo.hIcon)
m_trdisktree.InsertItem(filefd.GetFileName(),imindex,imindex,rootitem)
}
}
*pResult
=
0
}
看完这段代码,就一定会啦
BOOL WINAPI EnumChildWindowshttp://msdn.microsoft.com/en-us/library/windows/desktop/ms633494(v=vs.85).aspx
找对方主窗口中的子窗口,直到子窗口类为TreeView
然后再用个CWnd* pOtherTreeWnd = CWnd::Accach(treeView.m_hWnd)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)