[ad_1]
大家好!
首先,我想感谢所有花时间查看此帖子并尝试提供帮助的人。
我使用资源编辑器在对话框中制作了一个树视图控件。
我已经使用 SetWindowLongPtr( … ) 函数设置了复选框样式。
每个节点都有复选框,但我只需要一些节点有复选框,而另一些节点的文本旁边没有任何内容。
这可以通过子类化来实现吗?如果可以,请给我一些指示或链接,可能是示例代码或教程。
如果它不能通过子类化来完成,那么请向我指出如何做到这一点的正确方向(可能是自定义绘制,也可能是超类化?)。
我在 MS Visual Studio Express 2008、Windows XP 上使用 C++ 工作,使用 纯的 WIN32 API。
非常非常感谢你!
解决方案1
解决方案2
OP 澄清后:一种解决方案是删除节点并再次添加它,这次删除或添加复选框。 如果它有子集,则应保留并恢复整个子集。 第二种解决方案是使用自定义绘制并模拟图形中的复选框并对所有必需的事件进行编程。 使节点无效并删除(隐藏)、禁用或其他任何复选框。
解决方案3
有两种方法可以做到这一点:
一种是模拟复选框,如解决方案 1 和 2 中建议的那样,另一种是这样做:
创建树视图控件后,添加一个项目, 获取该项目句柄,然后设置项目按照此处描述的方式进行说明:
http://stackoverflow.com/questions/17798463/is-it-possible-to-remove-some-checkboxes-from-tree-views-nodes[^]
解决方案4
你好,
另一种不使用图像的解决方案是禁用 treview 复选框(或更好地模拟该行为),如下所述:
http://matteo72.wordpress.com/wp-admin/post.php?post=327&action=edit&message=6&postpost=v2[^]
[ad_2]
コメント