2015-09-03 40 views
0

好吧,這看起來可能是一個非常簡單的問題,但我是使用MFC的新手。MFC C++在樹形控件中填充數據

我的任務很簡單,我拖掉了樹控件,現在我想填充在it.I've一些數據採取了以下

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

像鏈接一些網上的例子有沒有構建代碼中的錯誤,但是當我運行代碼時,出現Debug Assertion Failed錯誤。

任何人都可以幫助我解決這個問題或提供一些基本教程或將數據填充到樹控件的聯機幫助。

+0

這調試斷言會指向一個文件名,一個行號,並且通常會顯示一個表達式。他們是什麼? –

+0

程序:C:\ WINDOWS \ SYSTEM32 \ mfc120ud.dll 文件:F:\ DD \ vctools \ vc7libs \船舶\ atlmfc \包括\ afxcmn.inl 線:271 –

回答

0

在上述引用的例子中,樹視圖創建手動使用資源編輯器拖放在使用p_TreeView->CreateWindow(...)

然而,這是沒有必要的。 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); 
+0

得到以下的生成錯誤 錯誤錯誤LNK2019:函數「public:virtual int __thiscall CMFCApplicationApp :: InitInstance(」)中引用的無法解析的外部符號「public:__thiscall CMFCApplicationDlg :: CMFCApplicationDlg(CWnd *類)」(?? 0CMFCApplicationDlg @@ QAE @ PAVCWnd @@@ Z) ()?(?InitInstance @ CMFCApplicationApp @@ UAEHXZ)\t C:\ Users \ omar.iqbal \ Desktop \ Shared \ Adob​​e CS6 \ Adob​​e Illustrator CS6 SDK \ samplecode \ MFCApplication \ MFCApplication.obj \t MFCApplication –

+0

OK我創建了一個新項目和按照你的步驟,它的工作。謝謝:) 您可以告訴我如何指定父節點和子節點數據 –

+0

我添加了一些示例,另請參閱https://msdn.microsoft.com/en-us/library/ettyybhw.aspx –