c++ - 如何使用 Win32 api 将 TreeView 项目设置为可见/不可见

标签 c++ c winapi treeview

我正在开发一个使用 WIN32 API 实现的项目,我需要在运行时根据用户输入的一些数据使某些 TreeView 项目可见/不可见。我做了一些工作,发现我可以在 TreeView 控件中添加/删除项目,但找不到任何地方如何设置项目可见或不可见(我找到了一些可以通过 MFC 完成的示例)。

我正在寻找将它们设置为可见/不可见的方法只是因为当我添加一个项目时,它需要大量的后端计算,重复添加或删除会导致性能问题。我只想对每个 TreeView 项进行一次计算。

我认为,如果无法设置 TreeView 项目,解决方案之一是简单地提供一个 TreeView 项目的链接列表,并仅添加/删除那些需要可见的项目/不可见。

请告诉我是否可以将 TreeView 项目的状态设置为可见/不可见,如果可以,那么如何?如果不是,还有什么其他替代解决方案?

最佳答案

标准的 TreeView 控件没有任何节点可见性的概念。添加/删除节点是唯一的选择。您将必须维护一个单独的链接列表缓存节点显示的数据(无论如何您都应该这样做,以便将您的 UI 逻辑与您的业务逻辑分开)。否则,您需要编写自己的 TreeView 控件,或寻找适合您需要的第三方实现。

关于c++ - 如何使用 Win32 api 将 TreeView 项目设置为可见/不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11819535/

相关文章:

c++ - QProgressBar : Change color while keeping OS style

c++ - 用户将如何在基于 QML 的插件系统中添加额外的功能?

c++ - 为什么 std::span 缺少 size_type?

c++ - 并行区域中循环的 OpenMP 迭代

C++/Win32 在不知道签名的情况下动态调用函数

c++ - 如何在 SFML 中使窗口始终位于顶部?

c - 如何定义一个函数并在一个宏中使用它?

php - 使用php的程序的交互式控制

c - 如何包含必要的 kernel32.lib、 header - 或在自定义应用程序中使用标准 dll?

c++ - GetPath() 能解决这个问题吗?