C ++ MFC - CTreeCtrl - SelectItem和SetItemState之间的区别

时间:2014-05-21 15:31:54

标签: c++ windows mfc

我需要为我的Windows应用程序创建一个树列表,其中多个节点选择具有拖放支持。由于Microsoft不为树提供任何此类属性,这简化了开发人员的工作,因此我必须自己实现此功能。

有人可以解释我的差异(以及以下陈述的相应吸气剂)以及何时使用

SetItemState(hItem, 1, TVIS_SELECTED);

SelectItem(hItem);

SetItemState(hItem, TVIS_SELECTED, TVIS_SELECTED);

1 个答案:

答案 0 :(得分:1)

主要区别在于SelectItem在功能上由SetItemState构建。除了其他任何操作外,SelectItem还会使用SetItemState(或等效的内部调用)为新项目设置TVIS_SELECTED,并将其从之前选择的项目中移除。< / p>

为了实现您自己的多选控件,当您想要扩充选择而不是替换它时,必须阻止调用SelectItem。有很多情况需要考虑,包括鼠标点击和各种修改键保持键盘导航,所以你的实现好运!