PropertySheet с TreeView (с использованием WinAPI)

В моей программе WinAPI я использую PropertySheet для диалогового окна настроек. Я использую лист свойств со страницами (вкладками), т.е. использую флаг PSH_PROPSHEETPAGE. Но в программе теперь слишком много параметров для такого типа страниц свойств. Поэтому я хочу использовать PropertySheet с древовидным представлением: древовидное представление слева и страница с параметрами для текущего выбранного элемента в древовидном представлении - справа. Как я могу это сделать? Можно ли для этого изменить мою текущую страницу свойств и как? (с использованием только WinAPI, без MFC)


person CITBL    schedule 14.10.2012    source источник


Ответы (1)


Стандартное окно свойств вам больше не подходит, поэтому в основном у вас есть два варианта. Вы можете создать окно (модальное или немодальное, на основе диалогового окна или без него) для размещения всех ваших элементов управления в одном представлении, с древовидным представлением, возможно, с вкладкой, а также отображением / скрытием элементов, чтобы следовать выбору древовидного представления. И вы переместите все свои элементы управления в это окно.

Или вместо этого вы можете создать аналогичное окно, в котором будут размещены страницы свойств. При изменении выбора дерева вы будете переключать страницы свойств, как если бы они выбирались вкладками в стандартной панели свойств. Дело в том, что вы можете использовать существующие страницы без изменений, сделав эти новые окна настроек имитирующими поведение стандартной страницы свойств. Это, возможно, более сложная задача, но она должна быть достаточно гибкой, чтобы сделать ее один раз и принимать различные страницы, и вам также не нужно касаться кода существующих страниц, оставляя его подходящим как для стандартного, так и для этого настраиваемого листа с деревом.

Оба способа предполагают, что вам нужно проделать определенную работу, поскольку вы отказываетесь от использования стандартного фрагмента кода - окна со списком свойств.

person Roman R.    schedule 14.10.2012