1、设置XML类型字符串
Dim str As String
'设置XML
str = ""
str = str &"<:XML>"
2、设置图片(图片值设置为-1为不可见)
'设置树枝节点图片
Dim strPath1 As String
strPath1 = App.Path &"cell1.bmp"
Dim value1 As Long
value1 = Cell1.AddImage(strPath1)
'设置树叶节点图片
Dim strPath2 As String
strPath2 = App.Path &"cell2.bmp"
Dim value2 As Long
value2 = Cell1.AddImage(strPath2)
3、设置单元格中的下拉树形控件
Cell1.SetDroptreeCell 2, 2, 0, str, value1, value2, 0'最后参数:单元格风格
1―单元格按钮在单元格未选中时不可见
备注:
设置单元格中的下拉树形控件。
[Visual Basic]
SetDroptreeCell(col As Long, row As Long, sheet As Long, xml As String,
nBranchImageIndex As Long, nLeafImageIndex As Long, option As Long)
参数
col
列号
row
行号
sheet
页号
xml
下拉树中的类容(xml格式)
nBranchImageIndex
树枝节点图片索引
nLeafImageIndex
树叶节点图片索引
option
单元格风格
1.在资源编辑器中右键单击你的树形控件,事件,然后选择NM_RCLICK,双击它,确定,就添加了树形控件的消息响应,然后找到对应的消息响应处理函数,如下是我的例子: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
}
看完这段代码,就一定会啦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)