资源描述:
《VC中树控件的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC中树控件的使用树控件可以对数据进行分层显示。在树控件中,除根节点以外,每个节点都有一个父节点,可以拥有多个兄弟节点和子节点,从而可以是数据以梳妆结构清晰的显示出来。(树控件图标)一.创建树控件BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);dwStyle控件的风格rect控件显示区域pParantWnd父窗口指针nID命令ID值dwStyle中可以使用以下一些树形控件的专用风格: TVS_HASLINES在父/子结点之间绘制连线
2、 TVS_LINESATROOT在根/子结点之间绘制连线 TVS_HASBUTTONS在每一个结点前添加一个按钮,用于表示当前结点是否已被展开 TVS_EDITLABELS结点的显示字符可以被编辑 TVS_SHOWSELALWAYS在失去焦点时也显示当前选中的结点 TVS_DISABLEDRAGDROP不允许Drag/Drop TVS_NOTOOLTIPS不使用ToolTip显示结点的显示字符树控件通常和图像列表控件一起使用,在树控件中可以显示图像列表中的图标,即为树控件添加图标。CImageList
3、*SetImageList(CImageList*pImageList,intnImageListType);pImageList标识图像列表控件指针nImageListType标识图像列表类型Eg.m_Tree.Create(TVS_LINESATROOT
4、TVS_HASLINES
5、TVS_HASBUTTONS
6、WS_BORDER);......m_ImageList.Create(16,16,ILC_COLOR24
7、ILC_MASK,1,0);......m_Tree.SetImageList(&m_Imag
8、eList,LVSIL_NORMAL);一.向树控件中插入数据在树形控件中每一个结点都有一个句柄(HTREEITEM),同时添加结点时必须提供的参数是该结点的父结点句柄。格式:1.HTREEITEMinsertItem(LPTVINSERTSTRUCTlpInsertStruct);lpInsertStructLPTVINSERTSTRUCT结构指针,LPTVINSERTSTRUCT结构中包含了插入操作的详细信息。1.HTREEITEMinsertItem(UINTnMask,LPCTSTRlpszItem,in
9、tnImage,intnSelectdeImage,UINTnState,UINTnStateMask,LPARAMlParam,HTREEITEMhParent,HTREEITEMhInsertAfter);nMask节点的哪些信息被设置lpszItem节点的文本nImage节点的图像索引nSelectdeImage节点状态nSelectdeImage节点选中时的图标索引nStateMask节点的哪些状态被设置lParam指定关联节点的附加信息hParent父节点句柄hInsertAfter新插入节点后面的节点
10、句柄3.HTREEITEMinsertItem(LPCTSTRlpszItem,HTREEITEMhParent=TVI_ROOT,HTREEITEMhInsertAfter=TVI_LAST);4.HTREEITEMinsertItem(LPCTSTRlpszItem,intnImage,intnSelectedImage,HTREEITEMhParent=TVI_ROOT,HTREEITEMhInsertAfter=TVI_LAST);三.展开或收缩树控件节点BOOLExpand(HTREEITEMhItem
11、,UINTnCode);hItem展开的节点句柄nCode展开的动作TVE_COLLAPSE:收缩所有节点TVE_COLLAPSERESET:收缩节点,移除子节点TVE_EXPAND:展开所有节点TVE_TOGGLE:展开或收缩当前节点四.删除节点BOOLDeleteItem(HTREEITEMhItem);hItem是删除节点的句柄BOOLDeleteAllItem();删除所有节点为了掌握上述的使用方法,下面举例说明:创建树控件步骤:1.创建一个基于对话框的应用程序,声明一个CTreeCtrl类变量m_Tre
12、e及一个图像列表对象m_ImageList,向工程中导入想要显示的图标资源。2.在OnInitDialog()函数中输入如下程序m_Tree.Create(TVS_LINESATROOT
13、TVS_HASLINES
14、TVS_HASBUTTONS
15、WS_BORDER
16、LVS_SHOWSELALWAYS,CRect(0,0,0,0),this,10001);//创建树控件m_T