Usuário com melhor resposta
TreeView

Pergunta
-
Olás
Preciso urgentemente saber como fazer uma TreeView no Visual Studio C++. No ToolBox tem a opção TreeView mas não sei como inserir o nome e comandos dos diretórios e seus respectivos filhos, Alguem saberia por favor me dá uma direção, pois estou completamente perdida
Desde já
Obrigadíssima!!!
Respostas
-
bom, como nao sei exatamente a qual "treeview" que vc se refere, vou supor que eh a CTreeCtrl (e nao a CTreeView, que no caso envolve o suporte a document/view architecture).
nesse caso, vc vai trabalhar com HTREEITEM. (e a adição de todos os nodes eh feita programaticamente, no caso dos eventos vc pode trabalhar com o mfc classwizard.).
segue alguns exemplos e referencias do proprio msdn.
codigo:
// Gain a pointer to our tree control
CTreeCtrl* pCtrl = (CTreeCtrl*) GetDlgItem(IDC_TREE1);ASSERT
(pCtrl != NULL);// Insert a root item using the structure. We must
// initialize a TVINSERTSTRUCT structure and pass its
// address to the call.
TVINSERTSTRUCT tvInsert
;tvInsert
.hParent = NULL;tvInsert
.hInsertAfter = NULL;tvInsert
.item.mask = TVIF_TEXT;tvInsert
.item.pszText = _T("United States");HTREEITEM hCountry
= pCtrl->InsertItem(&tvInsert);// Insert subitems of that root. Pennsylvania is
// a state in the United States, so its item will be a child
// of the United States item. We won't set any image or states,
// so we supply only the TVIF_TEXT mask flag. This
// override provides nearly complete control over the
// insertion operation without the tedium of initializing
// a structure. If you're going to add lots of items
// to a tree, you might prefer the structure override
// as it affords you a performance win by allowing you
// to initialize some fields of the structure only once,
// outside of your insertion loop.
HTREEITEM hPA
= pCtrl->InsertItem(TVIF_TEXT,_T
("Pennsylvania"), 0, 0, 0, 0, 0, hCountry, NULL);// Insert the "Washington" item and assure that it is
// inserted after the "Pennsylvania" item. This override is
// more appropriate for conveniently inserting items with
// images.
HTREEITEM hWA
= pCtrl->InsertItem(_T("Washington"), 0, 0, hCountry, hPA);// We'll add some cities under each of the states.
// The override used here is most appropriate
// for inserting text-only items.
pCtrl
->InsertItem(_T("Pittsburgh"), hPA, TVI_SORT);pCtrl
->InsertItem(_T("Harrisburg"), hPA, TVI_SORT);pCtrl
->InsertItem(_T("Altoona"), hPA, TVI_SORT);pCtrl
->InsertItem(_T("Seattle"), hWA, TVI_SORT);pCtrl
->InsertItem(_T("Kalaloch"), hWA, TVI_SORT);pCtrl
->InsertItem(_T("Yakima"), hWA, TVI_SORT);link:
best regards.
Todas as Respostas
-
bom, como nao sei exatamente a qual "treeview" que vc se refere, vou supor que eh a CTreeCtrl (e nao a CTreeView, que no caso envolve o suporte a document/view architecture).
nesse caso, vc vai trabalhar com HTREEITEM. (e a adição de todos os nodes eh feita programaticamente, no caso dos eventos vc pode trabalhar com o mfc classwizard.).
segue alguns exemplos e referencias do proprio msdn.
codigo:
// Gain a pointer to our tree control
CTreeCtrl* pCtrl = (CTreeCtrl*) GetDlgItem(IDC_TREE1);ASSERT
(pCtrl != NULL);// Insert a root item using the structure. We must
// initialize a TVINSERTSTRUCT structure and pass its
// address to the call.
TVINSERTSTRUCT tvInsert
;tvInsert
.hParent = NULL;tvInsert
.hInsertAfter = NULL;tvInsert
.item.mask = TVIF_TEXT;tvInsert
.item.pszText = _T("United States");HTREEITEM hCountry
= pCtrl->InsertItem(&tvInsert);// Insert subitems of that root. Pennsylvania is
// a state in the United States, so its item will be a child
// of the United States item. We won't set any image or states,
// so we supply only the TVIF_TEXT mask flag. This
// override provides nearly complete control over the
// insertion operation without the tedium of initializing
// a structure. If you're going to add lots of items
// to a tree, you might prefer the structure override
// as it affords you a performance win by allowing you
// to initialize some fields of the structure only once,
// outside of your insertion loop.
HTREEITEM hPA
= pCtrl->InsertItem(TVIF_TEXT,_T
("Pennsylvania"), 0, 0, 0, 0, 0, hCountry, NULL);// Insert the "Washington" item and assure that it is
// inserted after the "Pennsylvania" item. This override is
// more appropriate for conveniently inserting items with
// images.
HTREEITEM hWA
= pCtrl->InsertItem(_T("Washington"), 0, 0, hCountry, hPA);// We'll add some cities under each of the states.
// The override used here is most appropriate
// for inserting text-only items.
pCtrl
->InsertItem(_T("Pittsburgh"), hPA, TVI_SORT);pCtrl
->InsertItem(_T("Harrisburg"), hPA, TVI_SORT);pCtrl
->InsertItem(_T("Altoona"), hPA, TVI_SORT);pCtrl
->InsertItem(_T("Seattle"), hWA, TVI_SORT);pCtrl
->InsertItem(_T("Kalaloch"), hWA, TVI_SORT);pCtrl
->InsertItem(_T("Yakima"), hWA, TVI_SORT);link:
best regards.
-
-
tem tudo aqui (exemplos tbm)
best regards.