⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trvwdlg.cpp

📁 通过200多个实例
💻 CPP
字号:
// BttnDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Styles.h"
#include "TrVwDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CTreeViewDlg dialog


CTreeViewDlg::CTreeViewDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTreeViewDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTreeViewDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CTreeViewDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTreeViewDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTreeViewDlg, CDialog)
	//{{AFX_MSG_MAP(CTreeViewDlg)
	ON_WM_CREATE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTreeViewDlg message handlers

#define NSTYLES 6
#define XSPACING 7
#define YSPACING 20

int CTreeViewDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;

	UINT styles[NSTYLES]={ 
	0,
	TVS_HASBUTTONS         ,
	TVS_HASLINES           ,
	TVS_CHECKBOXES         ,
	TVS_TRACKSELECT        ,
	TVS_HASBUTTONS | TVS_HASLINES|TVS_LINESATROOT
	};

	CString sStyles[NSTYLES]={ 
	"Default",
	"TVS_HASBUTTONS"  ,
	"TVS_HASLINES"  ,
	"TVS_CHECKBOXES"  ,
	"TVS_TRACKSELECT"  ,
	"TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT"
	};

//	"TVS_SHAREDIMAGELISTS "  ,
//	"TVS_PRIVATEIMAGELISTS"
// undrawn
//	TVS_EDITLABELS         ,
//	TVS_DISABLEDRAGDROP    ,
//	TVS_SHOWSELALWAYS      ,
//	TVS_RTLREADING         ,
//	TVS_NOTOOLTIPS         ,

	CSize szStatic(160,60);
	CSize szTreeView(200,80);
	CRect rect(9999,-YSPACING,0,0);

	m_imageState.Create(IDB_STATUS_BITMAP, 16, 1, RGB(0,0,0));
	m_imageSmall.Create(IDB_SMALL_BITMAP, 16, 1, RGB(0,0,0));

	int i=0;
	while (i<NSTYLES)
	{
		rect.left=XSPACING;
		rect.top+=szTreeView.cy+YSPACING;

		for (int j=0;j<2&&i<NSTYLES;j++)
		{
			CStatic *pStatic=new CStatic;
			m_staticList.AddTail(pStatic);
			CTreeCtrl *pTreeView=new CTreeCtrl;
			m_TreeViewList.AddTail(pTreeView);
			rect.right=rect.left+szStatic.cx;
			rect.bottom=rect.top+szStatic.cy;
			pStatic->Create(sStyles[i],SS_RIGHT|WS_VISIBLE|WS_CHILD,rect,this);
			rect.OffsetRect(szStatic.cx+XSPACING,0);
			rect.right=rect.left+szTreeView.cx;
			rect.bottom=rect.top+szTreeView.cy;
			pTreeView->Create(styles[i]|WS_VISIBLE|WS_CHILD, rect,this,1000+i );
			rect.OffsetRect(szTreeView.cx+XSPACING,0);

///////////////////////////////////////////////////////////////
			pTreeView->SetImageList(&m_imageSmall, LVSIL_NORMAL);
			pTreeView->SetImageList(&m_imageState, LVSIL_STATE);

			char pszItem1[]={"Item 1"};
			char pszItem2[]={"Item 2"};
			char pszItem3[]={"Item 3"};
			char pszItem4[]={"Item 4"};
			char pszItem5[]={"Item 5"};

			TV_INSERTSTRUCT		tvi;
			tvi.item.mask = TVIF_IMAGE | TVIF_TEXT |TVIF_SELECTEDIMAGE;//|TVIF_STATE;

			tvi.hParent = TVI_ROOT;
			tvi.hInsertAfter = TVI_LAST;
			tvi.item.iImage = tvi.item.iSelectedImage =0;
			tvi.item.pszText = pszItem1;
			tvi.item.stateMask=TVIS_STATEIMAGEMASK;
			tvi.item.state=INDEXTOSTATEIMAGEMASK(1);
			HTREEITEM hTreeRoot = pTreeView->InsertItem(&tvi);

			tvi.hParent = hTreeRoot;
			tvi.hInsertAfter = TVI_LAST;
			tvi.item.iImage = tvi.item.iSelectedImage =1;
			tvi.item.pszText = pszItem2;
			tvi.item.stateMask=TVIS_STATEIMAGEMASK;
			tvi.item.state=INDEXTOSTATEIMAGEMASK(2);
			HTREEITEM hTreeItem1 = pTreeView->InsertItem(&tvi);

			tvi.hParent = hTreeItem1;
			tvi.hInsertAfter = TVI_LAST;
			tvi.item.iImage = tvi.item.iSelectedImage =2;
			tvi.item.pszText = pszItem3;
			tvi.item.stateMask=TVIS_STATEIMAGEMASK;
			tvi.item.state=INDEXTOSTATEIMAGEMASK(0);
			pTreeView->InsertItem(&tvi);

			tvi.hParent = TVI_ROOT;
			tvi.hInsertAfter = TVI_LAST;
			tvi.item.iImage = tvi.item.iSelectedImage =3;
			tvi.item.pszText = pszItem4;
			tvi.item.stateMask=TVIS_STATEIMAGEMASK;
			tvi.item.state=INDEXTOSTATEIMAGEMASK(1);
			pTreeView->InsertItem(&tvi);

			tvi.item.mask = TVIF_IMAGE | TVIF_TEXT |TVIF_SELECTEDIMAGE|TVIF_STATE;
			tvi.hParent = hTreeItem1;
			tvi.hInsertAfter = TVI_LAST;
			tvi.item.iImage = tvi.item.iSelectedImage =4;
			tvi.item.pszText = pszItem5;
			tvi.item.stateMask=TVIS_STATEIMAGEMASK;
			tvi.item.state=INDEXTOSTATEIMAGEMASK(1);
			pTreeView->InsertItem(&tvi);


			i++;
		}
	}
	
	return 0;
}

void CTreeViewDlg::PostNcDestroy() 
{
	while (m_TreeViewList.GetCount())
	{
		delete m_TreeViewList.RemoveHead();
	}
	while (m_staticList.GetCount())
	{
		delete m_staticList.RemoveHead();
	}
	
	CDialog::PostNcDestroy();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -