读书人

treeview添加节点图片有关问题

发布时间: 2012-12-17 09:31:40 作者: rapoo

treeview添加节点图片问题
[img=http://hi.csdn.net/attachment/201112/2/8643947_13227874283Fmx.jpg]我设置所有没有子节点的节点的显示图片[/img]
[最优解释]
主要是设置treeview的picturename[]属性,然后添加节点时,为节点设置PictureIndex和SelectedPictureIndex,但是picturename[]属性在运行过程中无法删除,只能添加,如果你想在运行过程中动态修改图片,只能通过
int li
li = tv_1.AddPicture("图片路径")
来添加图片,然后通过递归遍历所有节点,将child为false的节点的PictureIndex和SelectedPictureIndex动态修改为 li


[其他解释]

引用:
如图设置所有没有子节点的节点lable前面的图片
[其他解释]
太基础了 不想说
[其他解释]
引用:
主要是设置treeview的picturename[]属性,然后添加节点时,为节点设置PictureIndex和SelectedPictureIndex,但是picturename[]属性在运行过程中无法删除,只能添加,如果你想在运行过程中动态修改图片,只能通过
int li
li = tv_1.AddPicture("图片路径")
来添加图片,然后通过递归遍历所有节点,将child为fal……

//cb_1 clecked事件
long ll_handle, ll_level, ll_leveltmp
treeviewitem ltvi_1
ll_handle = il_handle
tv_1.getitem(ll_handle,ltvi_1)
ll_level = ltvi_1.level
ll_leveltmp = ll_level + 1
do while ll_leveltmp > ll_level
ll_handle = tv_1.finditem(NextVisibleTreeItem! ,ll_handle)
if ll_handle < 0 then exit
tv_1.getitem(ll_handle,ltvi_1)
ll_leveltmp = ltvi_1.level
if ll_leveltmp > ll_level and ltvi_1.children=false then
ltvi_1.pictureindex=2
messagebox( '', ltvi_1.label )

end if
tv_1.expandall(ll_handle)
loop

这么写怎么不好使啊?
[其他解释]
函数TreeList(long handle ; treeview tv_tree)
long ll_Handle
Treeviewitem ltvi_Item
ll_Handle = Tv_Tree.finditem(ChildTreeItem!,handle)
do while ll_Handle <> -1
Tv_Tree.Getitem(ll_Handle,ltvi_Item)
//根据ltvi_Item做相应的操作
//ltvi_Item即取出的节点,
//ltvi_Item.statepictureindex 节点状态,一般用来区分复选框
//ltvi_Item.label 节点标题
//ltvi_Item.data 节点创建时存放的数据
TreeList(ll_Handle,tv_tree)
ll_Handle = Tv_Tree.finditem(NextTreeItem!,ll_handle)
loop
调用TreeList(0)即可完成整颗树的遍历

[其他解释]
设置完pictureindex后,需要再setitem(ll_handle, ltvi_1)
[其他解释]
f_tree_child_setpic(treeview atv, long al_handle, int ai_pictureindex)  

long ll_Handle
Treeviewitem ltvi_Item


ll_Handle = atv.finditem(ChildTreeItem!,al_handle)
do while ll_Handle <> -1
if atv.Getitem(ll_Handle,ltvi_Item) <> 1 then exit //取节点成功,跳出循环
//开始节点图片变更操作
if not ltvi_item.child then //该节点没有子节点了
ltvi_item.pictureindex = ai_pictureindex
atv.setitem(ll_handle, ltvi_item) //更新节点
else
f_tree_child_setpic(atv, ll_handle, ai_pictureindex) //递归设置该节点的子节点
end if
//当前节点处理完毕,接着处理下一个节点
ll_Handle = Tv_Tree.finditem(NextTreeItem!,ll_handle)
loop


[其他解释]
引用:
C/C++ code
f_tree_child_setpic(treeview atv, long al_handle, int ai_pictureindex)

long ll_Handle
Treeviewitem ltvi_Item
ll_Handle = atv.finditem(ChildTreeItem!,al_handle)
do while ll_Ha……
al_handle 是什么啊?
[其他解释]
函数里面的参数啊
f_tree_child_setpic(treeview atv, long al_handle, int ai_pictureindex)

读书人网 >PB

热点推荐