我调用m_TreeCtrl.ModifyStyle(0,WS_VISIBLE | WS_TABSTOP | WS_CHILD
| TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP|TVS_EDITLABELS|TVS_TRACKSELECT );
为什么目录中的节点名称无法修改?单击左边的"+"为什么不展开,而要双击才展开?怎么无法选择么某个目录,而且根目录始终处于选择状态?
| TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP|TVS_EDITLABELS|TVS_TRACKSELECT );
为什么目录中的节点名称无法修改?单击左边的"+"为什么不展开,而要双击才展开?怎么无法选择么某个目录,而且根目录始终处于选择状态?
可以参考下
你试试在_pMyTreeCtrl->Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
| TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
| TVS_DISABLEDRAGDROP, CRect(0,0,0,0), this, IDC_TREE_VIEW));
的时候就设置好会不会成功
CTreeCtrl & m_TreeCtrl = GetTreeCtrl();
//设置目录树属性
m_TreeCtrl.ModifyStyle(0, TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
|TVS_EDITLABELS|TVS_TRACKSELECT );
m_TreeCtrl.SetTextColor(RGB(64,0,128));
//装载位图
m_pImageList = new CImageList();
m_pImageList->Create(20, 20, TRUE, 8, 4);
for( int i = IDB_R1; i <= R2; i++)
{
bitmap.LoadBitmap( i );
m_pImageList->Add( &bitmap, (COLORREF)0xFFFFFF);
bitmap.DeleteObject();
}
m_pImageList->Add(&bitmap,(COLORREF)0xFFFFFF);
bitmap.DeleteObject();
m_TreeCtrl.SetImageList(m_pImageList,LVSIL_NORMAL); //目录清空
m_TreeCtrl.DeleteAllItems();
//插入结构
TV_INSERTSTRUCT strInsert;
strInsert.item.mask = TVIF_TEXT|TVIF_IMAGE|TVIF_CHILDREN;
strInsert.hParent = NULL;//根,无父节点
strInsert.item.iImage =0;
strInsert.item.iSelectedImage = strInsert.item.iImage;
strInsert.item.pszText = (LPSTR)"fu";
HTREEITEM hRoot = m_TreeCtrl.InsertItem(&strInsert);
strInsert.hParent=hRoot;
TCHAR sInsert[6][20]={_T("t1"),_T("t2"),_T("t3"),_T("t4"),_T("t5"),_T("t6")};
for(i=0;i<5;i++)
{
strInsert.item.pszText = sInsert[i];
strInsert.item.iImage=i+1;
strInsert.item.iSelectedImage = strInsert.item.iImage;
HTREEITEM hSubRoot= m_TreeCtrl.InsertItem(&strInsert);
m_TreeCtrl.Expand(hSubRoot,TVE_EXPAND);
}