我创建了一个基于Dialog的简单MFC应用程序。我将TreeControl拖到对话框资源编辑器上。我给它一个成员变量名。我还有一个带有事件处理程序功能的按钮。单击按钮时,我想填充树。
问题是,仅添加了根元素,而没有其他添加。有任何想法吗?
`
void CCrysisDialogDecryptorDlg::OnBnClickedButton1()
{
HTREEITEM hItem, hCar;
hItem = m_directoryListing.InsertItem(L"C:\\",TVI_ROOT);
hCar = m_directoryListing.InsertItem(L"Child",hItem);
m_directoryListing.InsertItem(L"Grandchild",hCar);
m_directoryListing.InsertItem(L"Grandchild",hCar);
m_directoryListing.InsertItem(L"Grandchild",hCar);
}
`
最佳答案
您的代码没有任何问题,我尝试了相同的代码,并且可以正常工作。您可能会看到仅一个根元素,因为默认情况下未展开树。
您可以添加以下代码来展开树,并尝试查看所有元素。
hItem= m_directoryListing.GetFirstVisibleItem();
while (hItem != NULL)
{
m_directoryListing.Expand(hItem,TVE_EXPAND);
hItem= m_directoryListing.GetNextItem(hItem, TVGN_NEXTVISIBLE);
}