Click to See Complete Forum and Search --> : CTreeCtrl/CTreeView


Asiyah Younas
May 17th, 1999, 09:02 PM
Please any body would tell me the code to create and display a tree on main window in a Frame/Doc/View architecture using CTreeView class.
Thanks.

olivier
May 18th, 1999, 10:43 AM
==== CPP FILE ==============
// TreeTestView.cpp : implementation file
//

#include "stdafx.h"
#include "Parser.h"
#include "TreeTestView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTreeTestView

IMPLEMENT_DYNCREATE(CTreeTestView, CTreeView)

CTreeTestView::CTreeTestView()
{
}

CTreeTestView::~CTreeTestView()
{
}


BEGIN_MESSAGE_MAP(CTreeTestView, CTreeView)
//{{AFX_MSG_MAP(CTreeTestView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTreeTestView drawing

void CTreeTestView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CTreeTestView diagnostics

#ifdef _DEBUG
void CTreeTestView::AssertValid() const
{
CTreeView::AssertValid();
}

void CTreeTestView::Dump(CDumpContext& dc) const
{
CTreeView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTreeTestView message handlers

void CTreeTestView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();

CTreeCtrl& TreeCtrl = GetTreeCtrl ();


HTREEITEM FirstNode = TreeCtrl.InsertItem( "FirstNode", TVI_ROOT, TVI_LAST);
HTREEITEM SecondNode = TreeCtrl.InsertItem( "SecondNode", TVI_ROOT, TVI_LAST );

TreeCtrl.InsertItem( "FirstNode - Item 1", FirstNode, TVI_LAST);
TreeCtrl.InsertItem( "FirstNode - Item 2", FirstNode, TVI_LAST);
TreeCtrl.InsertItem( "FirstNode - Item 3", FirstNode, TVI_LAST);
TreeCtrl.InsertItem( "SecondNode - Item 1", SecondNode, TVI_LAST);
TreeCtrl.InsertItem( "SecondNode - Item 2", SecondNode, TVI_LAST);
TreeCtrl.InsertItem( "SecondNode - Item 3", SecondNode, TVI_LAST);

}

BOOL CTreeTestView::PreCreateWindow(CREATESTRUCT& cs)
{

cs.style |= TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS ;

return CTreeView::PreCreateWindow(cs);
}
======= H FILE =======================
include <afxcview.h>
class CTreeTestView : public CTreeView
{
protected:
CTreeTestView(); // protected constructor used by dynamic creation
DECLARE_DYNCREATE(CTreeTestView)

// Attributes
public:

// Operations
public:

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTreeTestView)
public:
virtual void OnInitialUpdate();
protected:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL

// Implementation
protected:
virtual ~CTreeTestView();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

// Generated message map functions
protected:
//{{AFX_MSG(CTreeTestView)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

Asiyah Younas
June 1st, 1999, 11:19 PM
Thanks a lot for all of your help. It was really usefull. I really appriciate it. It is done now. Thanks again.