gpt4 book ai didi

windows - 在 ctreecntrl 的树项中启用复选框

转载 作者:可可西里 更新时间:2023-11-01 10:01:25 25 4
gpt4 key购买 nike

我正在尝试在 Visual C++ 6.0 的 ctreecntrl 中启用/禁用树项中的复选框。我找到了对所有项目执行此操作的选项,但无法针对每个项目执行此操作。有什么功能可以做到吗?

最佳答案

要打开和关闭单个树项目的复选框,您需要发送 TVM_SETITEM messages ,它用于设置 TreeView 中项目的属性。

文档说 wParam 必须为零,lParam 是指向包含新项目属性的 TVITEM structure 的指针。

所以真正的战​​斗是相应地填充 TVITEM 结构。以下是重要部分:

  • hItem 成员必须包含您要修改的树项的句柄。
  • mask 成员应设置为 TVIF_STATE ,这表明 statestateMask 成员是有效的。您将使用这些来打开和关闭复选框。
  • state 成员可以设置为 0,这将隐藏指定树项的复选框。
    显示树项的复选框,请设置 1 << 12 的这个成员。 (有关详细信息,请参阅 docs)。
  • stateMask 成员应设置为 TVIS_STATEIMAGEMASK 以指示您正在更改项目的状态图像索引。

由于您已设置 mask 以指示您仅使用 statestateMask 成员,因此您可以愉快地忽略其余成员。

最后,一旦设置了 TVITEM 结构,就可以使用标准 SendMessage 函数或 TreeView_SetItem macro 将消息发送到树项目。

(当然,整个 TreeView 必须设置 TVS_CHECKBOXES style 才能使上述任何一项工作!但您说过您已经想出了如何做到这一点。)

关于windows - 在 ctreecntrl 的树项中启用复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5702614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com