Индекс выбранного элемента дерева - PullRequest
2 голосов
/ 19 января 2010

Есть ли в любом случае, чтобы получить индекс выбранного узла представления дерева или у них даже есть один?

Ответы [ 3 ]

2 голосов
/ 20 января 2010

Поскольку вы запрашиваете «индекс» только для того, чтобы иметь возможность найти данные, связанные с этим элементом, вы должны знать, что древовидный элемент управления может хранить ваши данные.Каждый элемент (TVITEM struct) имеет элемент lParam, который вы можете использовать для этого.

Если вам действительно нужен контейнер, сделайте так, как предложил avakar.Используйте HTREEITEM в качестве ключа.

1 голос
/ 19 января 2010

Примерно так:

Selected=(HTREEITEM)SendDlgItemMessage(hWnd,IDC_TREE1,
          TVM_GETNEXTITEM,TVGN_CARET,(LPARAM)Selected);
if(Selected==NULL)
{
  MessageBox(hWnd,"No Items in TreeView","Error",
             MB_OK|MB_ICONINFORMATION);
  break;
}

происходит от здесь

0 голосов
/ 19 января 2010

Этого нет, потому что такой индекс можно определить разными способами.

Если вы свернете и развернете узлы, изменится ли выбранный индекс или останется неизменным?

Чтобы получить эту функциональность, вам придется применить свой собственный алгоритм с любым набором правил, который вы хотите. Или просто пройдите по выбранному узлу, как показано (это гораздо чаще).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...