1

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

我的任务很简单,我拖放了一个树控件,现在我想在其中填充一些数据。我遵循了一些在线示例,如下面的链接

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

代码中没有构建错误,但是当我运行代码时,出现错误调试断言失败。

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

4

1 回答 1

2

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

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

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);
于 2015-09-03T16:49:20.853 回答