У меня есть диалог с древовидным представлением внутри него и хотел бы, чтобы диалог автоматически изменялся автоматически, когда дерево было развернуто или свернуто, чтобы избежать полос прокрутки или избыточного пространства.Как получить минимальный размер элемента управления TreeView, который позволяет избежать полос прокрутки?
Для этого мне нужно найти способ «желаемого» размера дерева, т. Е. Наименьший размер, достаточно большой, чтобы не отображать полосы прокрутки.
Любые предложения?
Редактировать: Итак, я на полпути. Я могу определить высоту, подсчитывая количество видимых элементов и умножая на TreeView_GetItemHeight
. Я до сих пор не знаю, как найти ширину, однако ...
Используйте TreeView_GetItemRect() для каждого узла. –
@ HansPassant Спасибо за это предложение, к сожалению, 'TreeView_GetItemRect' работает только для элементов, которые видны внутри клиентской области, и поэтому нецелесообразно определять, насколько велика возможность сделать дерево видимым. – zennehoy
Вы не можете получить размер невидимого узла. Поэтому используйте его * после *, вы сделали его видимым. –