
void
CViewTreeBase::OnNMRClick(NMHDR
*pNMHDR,
LRESULT
*pResult)
{
UNREFERENCED_PARAMETER(pNMHDR)
CPoint
point
GetCursorPos(&point)
ScreenToClient(&point)
UINT
uFlags
=
0
HTREEITEM
click
=
HitTest(point,
&uFlags)
//click和uFlags能定位你单击的具体项目,参看参考资料。
//在这里你可以进行你的添加节点的 *** 作,相信你会天际节点。如果需要添加菜单,你可以搜搜右键添加菜单,然后在这里d出菜单。具体的,看你需求,再做解答。
}
2.也可以自己派生一个类,继承于CTreeCtr,从类向导中进行添加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
}
看完这段代码,就一定会啦
http://msdn.microsoft.com/zh-cn/library/ch6etkw4.aspx这个是treeview整个控件的 你看下
http://msdn.microsoft.com/zh-cn/library/70w4awc4.aspx
这个是添加节点的
要学会用MSDN资源啊!!!!!!!!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)