成员变量:KUIMulStatusTree m_ctlTree;
头文件: KuiRealTreeCtrl.h
1:在main.xml中设置:
<tab title="test" width="full" height="full" class="tabpageblue"> <dlg pos="0,0,-0,-0" crbg="FBEEFD" class="panel" > <realwnd id="101" ctrlid="101" pos="10,10,-10,-5" /> //控件ID为101 </dlg> </tab>
2:在初始化对话框中:
//Tree树形控件
if( !m_ctlTree.Create( GetViewHWND(), 101 ) )
{ ::MessageBox(0,_T("无法创建树形控件"),_T("提示"),MB_OK | MB_ICONERROR); }
else
{ HTREEITEM hItem = m_ctlTree.InsertItem( _T("全选集"), NULL,NULL,KUIMulStatusTree::EM_TVIS_CHECK );
m_ctlTree.InsertItem( _T("下属项目1"), hItem, NULL, KUIMulStatusTree::EM_TVIS_CHECK ); m_ctlTree.InsertItem( _T("下属项目2"), hItem, NULL, KUIMulStatusTree::EM_TVIS_CHECK ); m_ctlTree.InsertItem( _T("下属项目3"), hItem, NULL, KUIMulStatusTree::EM_TVIS_CHECK ); m_ctlTree.InsertItem( _T("下属项目4"), hItem, NULL, KUIMulStatusTree::EM_TVIS_CHECK ); m_ctlTree.InsertItem( _T("下属项目5"), hItem, NULL, KUIMulStatusTree::EM_TVIS_CHECK ); hItem = m_ctlTree.InsertItem( _T("半选集"), NULL, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目1"), hItem, NULL, KUIMulStatusTree::EM_TVIS_CHECK ); m_ctlTree.InsertItem( _T("下属项目2"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目3"), hItem, NULL, KUIMulStatusTree::EM_TVIS_CHECK ); m_ctlTree.InsertItem( _T("下属项目4"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目5"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); hItem = m_ctlTree.InsertItem( _T("全非选集"), NULL, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目1"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目2"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目3"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目4"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); m_ctlTree.InsertItem( _T("下属项目5"), hItem, NULL, KUIMulStatusTree::EM_TVIS_UNCHECK ); }
注:
代码同时演示了项目的插入方法,最后的参数EM_TVIS_CHECK指示了使用选择框,一共可以有四种选择状态,分别如下:
EM_TVIS_NONE 没有选择框
EM_TVIS_UNCHECK 非选中
EM_TVIS_INDETERMINING 半选中,一般为父项目使用
EM_TVIS_CHECK
对于树控件的具体使用方法可以参考MSDN.因为它就是一个实际的窗口控件,而非DirectUI控件
DEFINE_BMP(IDB_BITMAP_TREECTRL_CHECK, 116, "res\\Treectrl_check.bmp")
效果为:
