gusucode.com > 基于VC编程界面编程高级应用技术源码程序 > VC界面编程高级应用技术/code/1/DevDemo/Tree2.cpp

    // Tree2.cpp : implementation file
//

#include "stdafx.h"
#include "DevDemo.h"
#include "Tree2.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTree2

IMPLEMENT_DYNCREATE(CTree2, CTreeView)

CTree2::CTree2()
{
}

CTree2::~CTree2()
{
}


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

/////////////////////////////////////////////////////////////////////////////
// CTree2 drawing

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

/////////////////////////////////////////////////////////////////////////////
// CTree2 diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CTree2 message handlers
//修改标签窗口2的外观
void CTree2::OnInitialUpdate() 
{
	CTreeView::OnInitialUpdate();
	CTreeCtrl& m_pTreeCtrl=GetTreeCtrl( );
	CString msg;
	//为目录树建立图像列表
	m_ImageList.Create (IDB_IL_CLASS, 16, 1, RGB(0,255,0));
	m_pTreeCtrl.SetImageList (&m_ImageList, TVSIL_NORMAL);
	
	CString strTreeItems[] = { _T("项目"), _T("类名"), _T("Globals") };
	//加入根节点
	HTREEITEM htItem = m_pTreeCtrl.InsertItem(strTreeItems[0]);
	m_pTreeCtrl.SetItemState( htItem, TVIS_BOLD, TVIS_BOLD );
	//加入子节点
	for( int i = 1; i < 8; i++ ) 
	{
		msg.Format("%d",i);
		m_pTreeCtrl.InsertItem (strTreeItems[1]+msg, 1, 1, htItem, TVI_LAST);
	}
	
	//加入子节点2
	m_pTreeCtrl.InsertItem (strTreeItems[2], 2, 3, htItem, TVI_LAST);
	//展开目录
	m_pTreeCtrl.Expand(htItem, TVE_EXPAND);
}

BOOL CTree2::PreCreateWindow(CREATESTRUCT& cs) 
{
	// TODO: Add your specialized code here and/or call the base class
	    cs.style|=TVS_HASLINES|TVS_LINESATROOT;


	return CTreeView::PreCreateWindow(cs);
}

BOOL CTree2::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
}