给CTreeViewUI动态添加节点时发现了一个问题,如果
如果:
ptree->add(node1)
node1>add(node1-1)
node1>add(node1-2)
ptree->add(node2)
ptree->add(node3)
那么node1-1,node1-2会显示不出来,调整添加顺序为:
ptree>add(node1)
ptree>add(node2)
ptree>add(node3)
node1>add(node1-1)
node1>add(node1-2)
后就显示出来了。这是受别的文章的启发而试出来的。不得不说,开源的东西不好用,bug多,要猜着做。
真实的代码如下,供参考:
CTreeViewUI* pTree = static_cast<CTreeViewUI*>(m_PaintManager.FindControl(_T("tree_list"))); if (pTree) { CTreeNodeUI *pTreeElement1 = new CTreeNodeUI; pTree->Add(pTreeElement1); pTreeElement1->SetItemText("111111"); pTreeElement1->SetItemTextColor(RGB(0, 0, 0)); pTreeElement1->SetItemHotTextColor(RGB(255, 255, 255)); pTreeElement1->SetSelItemTextColor(RGB(255, 255, 255)); pTreeElement1->SetAttribute(_T("folderattr"), _T("padding="0,1,0,0" width="16" height="16" normalimage="res='155' restype='png' source='0,0,16,16' " hotimage="file='155' restype='png' source='16,0,32,16' " selectedimage="res='154' restype='png' source='0,0,16,16' " selectedhotimage="res='154' restype='png' source='16,0,32,16' "")); pTreeElement1->SetAttribute(_T("checkboxattr"), _T("width="16" height="16" normalimage="res='125' restype='png'" selectedimage="res='124' restype='png'"")); CTreeNodeUI *pTreeElement2 = new CTreeNodeUI; pTree->Add(pTreeElement2); pTreeElement2->SetItemText("22222222222"); pTreeElement2->SetItemTextColor(RGB(0, 0, 0)); pTreeElement2->SetItemHotTextColor(RGB(255, 255, 255)); pTreeElement2->SetSelItemTextColor(RGB(255, 255, 255)); pTreeElement2->SetAttribute(_T("folderattr"), _T("padding="0,1,0,0" width="16" height="16" normalimage="res='155' restype='png' source='0,0,16,16' " hotimage="file='155' restype='png' source='16,0,32,16' " selectedimage="res='154' restype='png' source='0,0,16,16' " selectedhotimage="res='154' restype='png' source='16,0,32,16' "")); pTreeElement2->SetAttribute(_T("checkboxattr"), _T("width="16" height="16" normalimage="res='125' restype='png'" selectedimage="res='124' restype='png'"")); CTreeNodeUI *pTreeElement3 = new CTreeNodeUI; pTree->Add(pTreeElement3); pTreeElement3->SetItemText("333333333333333"); pTreeElement3->SetItemTextColor(RGB(0, 0, 0)); pTreeElement3->SetItemHotTextColor(RGB(255, 255, 255)); pTreeElement3->SetSelItemTextColor(RGB(255, 255, 255)); pTreeElement3->SetAttribute(_T("folderattr"), _T("padding="0,1,0,0" width="16" height="16" normalimage="res='155' restype='png' source='0,0,16,16' " hotimage="file='155' restype='png' source='16,0,32,16' " selectedimage="res='154' restype='png' source='0,0,16,16' " selectedhotimage="res='154' restype='png' source='16,0,32,16' "")); pTreeElement3->SetAttribute(_T("checkboxattr"), _T("width="16" height="16" normalimage="res='125' restype='png'" selectedimage="res='124' restype='png'"")); CTreeNodeUI *pTreeElement11 = new CTreeNodeUI; pTreeElement1->AddChildNode(pTreeElement11); pTreeElement11->SetItemText("11111-1111111"); pTreeElement11->SetItemTextColor(RGB(0, 0, 0)); pTreeElement11->SetItemHotTextColor(RGB(255, 255, 255)); pTreeElement11->SetSelItemTextColor(RGB(255, 255, 255)); pTreeElement11->SetVisible(true); CTreeNodeUI *pTreeElement12 = new CTreeNodeUI; pTreeElement1->AddChildNode(pTreeElement12); pTreeElement12->SetItemText("11111-22222222222222"); pTreeElement12->SetItemTextColor(RGB(0, 0, 0));
pTreeElement12->SetItemHotTextColor(RGB(255, 255, 255)); pTreeElement12->SetSelItemTextColor(RGB(255, 255, 255)); pTreeElement12->SetVisible(true); }
运行效果如下:
原创内容,谢绝转载(请大家少制造点数字垃圾吧)
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!