MFC C ++在树控件中填充数据

时间:2015-09-03 15:59:07

标签: c++ mfc treecontrol

好的,这似乎是一个非常简单的问题,但我是MFC的新手。

我的任务很简单,我拖了一个Tree Control,现在我想在其中填充一些数据。我已经关注了一些在线示例,如下面的链接

http://www.functionx.com/visualc/controls/treectrl.htm

代码中没有构建错误,但是当我运行代码时,我收到错误Debug Assertion Failed。

任何人都可以帮我解决这个问题,或者提供一些将数据填充到树控件中的基本教程或在线帮助。

1 个答案:

答案 0 :(得分:1)

在上面引用的示例中,使用p_TreeView->CreateWindow(...)

手动创建TreeView

但是,在资源编辑器中使用拖放时不需要这样做。 Dialog类只需要对已创建的树控件的引用。

CMyDialog课程中声明:

class CMyDialog : public CDialogEx
{
    ...
    CTreeCtrl m_TreeView;
    void DoDataExchange(CDataExchange* pDX);
};

将此添加到* .cpp文件:

void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_TREE1, m_TreeView);
}

现在您可以使用m_TreeView,例如:

m_TreeView.InsertItem("Test");
HTREEITEM level_1 = m_TreeView.InsertItem("level 1");
m_TreeView.InsertItem("level 2 a", level_1);
m_TreeView.InsertItem("level 2 b", level_1);
HTREEITEM level_2_c = m_TreeView.InsertItem("level 2 c", level_1);
m_TreeView.InsertItem("level 3 c", level_2_c);

m_TreeView.Expand(level_1, TVM_EXPAND);