У меня есть TreeView, который позволяет пользователям выбирать определенные элементы иерархических данных путем проверки или отмены проверки каждого элемента. В настоящее время я отключу ящик на узлах, у которых есть дети, используя технику скрытия меток из другого вопроса, например:
☑ Node 1
☐ Node 2
• Node 3
☑ Node 3.1
☑ Node 3.2
• Node 4
☐ Node 4.1
☑ Node 4.2
Но лучшим решением было бы использовать флажки tri-state для родительских узлов, например:
☑ Node 1
☐ Node 2
☑ Node 3
☑ Node 3.1
☑ Node 3.2
☒ Node 4
☐ Node 4.1
☑ Node 4.2
Поскольку эта функциональность была доступна в Win32, мой вопрос заключается в том, как это сделать, не рисуя сами ящики (например, как пользовательский элемент управления или using список изображений). Я вообще не знаком с API Win32; как бы расширить технологию, связанную выше, чтобы включить трио-state checboxes в управляемом элементе управления TreeView?