1

我使用资源编辑器在对话框中创建了一个树视图控件。

我已经按照 Microsoft 描述的方式使用 SetWindowLongPtr( ... ) 函数设置了复选框样式。

每个节点都有这种方式的复选框,但我只需要一些有复选框,而一些没有任何东西站在他们的文本旁边(父节点没有复选框,只有子节点或简单节点->没有子节点的节点)。

这可以通过子类化、自定义/所有者绘制或超类化来实现吗?

4

1 回答 1

2

树控件使用状态图像来绘制复选框。根据有关TVS_CHECKBOXES样式的文档:

状态图像 1 是未选中的框,状态图像 2 是选中的框。将状态图像设置为零会完全删除该复选框。

所以这样的事情应该让你从树项目中删除复选框:

TVITEM tvi;
tvi.hItem = hTreeItem;
tvi.mask = TVIF_STATE;
tvi.stateMask = TVIS_STATEIMAGEMASK;
tvi.state = 0;
TreeView_SetItem(hWndTree, &tvi);
于 2013-07-22T22:43:18.507 回答