naimamaim Ответов: 2

Как я могу пересечь дерево CTreeCtrl


Как я могу пройти CTreecntrl Метод ctreectrl дерево и сохранить его в виде структуры типа вектора?

fjdiewornncalwe

Как насчет того, чтобы сначала попробовать погуглить это? Я получил более 12 000 результатов, используя простой поиск "CTreeCtrl to vector".

Manfred Rudolf Bihy

Поскольку я из тех парней, которые любят иметь варианты, я бы выбрал либо "поиск по глубине", либо "поиск по ширине". Однако я не уверен, что класс CTreecntrl допускает и то, и другое.

Хорошо! Теперь, когда ты это сделал, мне стало любопытно. Я думаю, что мне нужно пойти и посмотреть это.

Manfred Rudolf Bihy

Хорошо. таким образом, вы даже не можете ввести простое имя класса. Позвольте мне исправить это для вас... Сделано!.

Manfred Rudolf Bihy

Отредактирована опечатка, сокращен заголовок, добавлен тег алгоритма.

2 Ответов

Рейтинг:
2

LupinTaiwan

HTREEITEM hItem = GetRootItem();
while (NULL != hItem)
{
    //TODO: Do what you want to the hItem here
    hItem = GetNextSiblingItem(hItem);
}


Richard MacCutchan

С опозданием более чем на семь лет.

Рейтинг:
1

Manfred Rudolf Bihy

5 минутное исследование показало это:

http://www.codeguru.com/forum/archive/index.php/t-359096.html

а это:

http://www.ms-news.net/f3291/traversing-ctreectrl-structure-2705009.html

Это прямо из источника как говорится:
http://msdn.microsoft.com/en-us/library/8bkz91b4(v=против 80).aspx

Но подождите, это еще не все: я только что узнал, что CTreeCtrl как метод называется CTreeCtrl::GetNextSiblingItem и CTreeCtrl::GetNextItem а это значит, что вы можете сделать глубиной первого поиска или широта первого поиска.

Получайте удовольствие!

Овации,

Манфред