C++中,如何将树形控件添加到对话框中,让树形控件浏览本地磁盘

C++中,如何将树形控件添加到对话框中,让树形控件浏览本地磁盘,第1张

1.添加树形视图控件

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 EnumChildWindows

http://msdn.microsoft.com/en-us/library/windows/desktop/ms633494(v=vs.85).aspx

找对方主窗口中的子窗口,直到子窗口类为TreeView

然后再用个CWnd* pOtherTreeWnd = CWnd::Accach(treeView.m_hWnd)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11807978.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存