{
CDialog::OnInitDialog();
HICON hlcon[8];
m_imageList.Create( 16, 16, 0, 8, 8 );
hlcon[0] = AfxGetApp()->LoadIcon( IDI_ICON1 );
hlcon[1] = AfxGetApp()->LoadIcon( IDI_ICON2 );
hlcon[2] = AfxGetApp()->LoadIcon( IDI_ICON3 );
hlcon[3] = AfxGetApp()->LoadIcon( IDI_ICON4 );
hlcon[4] = AfxGetApp()->LoadIcon( IDI_ICON5 );
hlcon[5] = AfxGetApp()->LoadIcon( IDI_ICON6 );
hlcon[6] = AfxGetApp()->LoadIcon( IDI_ICON7 );
hlcon[7] = AfxGetApp()->LoadIcon( IDI_ICON8 );
for ( int n = 0; n < 8; n ++ )
{
m_imageList.Add( hlcon[n] );
}
CTreeCtrl* pTree = (CTreeCtrl*)GetDlgItem( IDC_TREEVIEW1 );
pTree->SetImageList( &m_imageList, TVSIL_NORMAL );
TV_INSERTSTRUCT tvinsert;
tvinsert.hParent = NULL;
tvinsert.hInsertAfter = TVI_LAST;
tvinsert.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT;
tvinsert.item.hItem = NULL;
tvinsert.item.state = 0;
tvinsert.item.stateMask = 0;
tvinsert.item.cchTextMax = 6;
tvinsert.item.iSelectedImage = 1;
tvinsert.item.cChildren = 0;
tvinsert.item.lParam = 0;
tvinsert.item.iImage = 0;
//////////////////////////////////////////////////////////////////////////
tvinsert.item.pszText = "HOMER";
HTREEITEM hDad = pTree->InsertItem( &tvinsert );
//////////////////////////////////////////////////////////////////////////
tvinsert.item.pszText = "Marge";
HTREEITEM hMom = pTree->InsertItem( &tvinsert );
tvinsert.hParent = hDad;
tvinsert.item.pszText = "Bart";
tvinsert.item.iImage = 3;
pTree->InsertItem( &tvinsert );
tvinsert.hParent = hMom;
tvinsert.item.pszText = "Lisa";
tvinsert.item.iImage = 6;
pTree->InsertItem( &tvinsert );
tvinsert.item.pszText = "Dilbart";
HTREEITEM hOther = pTree->InsertItem( &tvinsert );
tvinsert.hParent = hOther;
tvinsert.item.pszText = "Dogbert";
tvinsert.item.iImage = 7;
pTree->InsertItem( &tvinsert );
tvinsert.item.pszText = "Ratbert";
pTree->InsertItem( &tvinsert );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
下面這段代碼實現了選中某一項進行的更改操作:
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
CTreeCtrl* pTree = (CTreeCtrl*)GetDlgItem(IDC_TREEVIEW1);
HTREEITEM hSelected = pNMTreeView->itemNew.hItem;
if ( hSelected != NULL )
{
char text[31];
TV_ITEM item;
item.mask = TVIF_HANDLE | TVIF_TEXT;
item.hItem = hSelected;
item.pszText = text;
item.cchTextMax = 30;
VERIFY( pTree->GetItem(&item) );
SetDlgItemText( IDC_TREEVIEW1, text );
}
*pResult = 0;
}
dlg.DoModal();
這些只是實現了靜態添加樹節點。以後還要深入的學習!