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

MFC C++ Populate data in Tree Control

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

我的任务很简单,我拖放了一个树控件,现在我想在 it.I 中填充一些数据已经遵循了一些在线示例,例如下面的 link

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

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

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

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

手动创建的

然而,在资源编辑器中使用拖放时则不需要。对话框 class 只需要引用已创建的树控件。

CMyDialog中声明class:

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);