设置ctreectrl项目的复选框到部分状态

问题描述 投票:0回答:2

现在我如何将任何项目设置为此状态?似乎没有任何文档。我猜想以来,通过将项目的状态图像更改为1或2来检查和取消检查工作,我可以尝试3:

的运气。
tree->SetItemState(tree->GetFirstVisibleItem(), INDEXTOSTATEIMAGEMASK(3), TVIS_STATEIMAGEMASK);
当然,这太容易了,它只是使图像消失了。

也许您需要使用
tree->SetCheck()

而不是

tree->SetItemState()
windows user-interface winapi mfc
2个回答
0
投票

雷蒙德·陈(Raymond Chen)的博客帖子toglobloblobs tobled tast the the tree View复选框:扩展复选框状态。
关键部分是:

这些扩展样式的文档说它们必须与

0
投票
相结合,但这不是事实。这些扩展样式暗示

TVS_CHECK­BOXES;您无需设置TVS_CHECK­BOXES

。实际上,这比这更糟糕。如果首先设置

TVS_CHECK­BOXES

,然后将扩展样式设置为第二,则根本不会获得扩展样式。

如果您正在手动创建树视图/CTRL,请确保未设置TVS_CheckBox。如果您使用的是MFC,请确保对话框设计器中的

Check Boxes
参数设置为false。
	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.