




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VC中树控件的使用树控件可以对数据进行分层显示。在树控件中,除根节点以外,每个节点都有一个父节点,可以拥有多个兄弟节点和子节点,从而可以是数据以梳妆结构清晰的显示出来。(树控件图标)1 创建树控件BOOL Create(DWORD dwStyle , const RECT & rect , CWnd * pParentWnd ,UINT nID);dwStyle 控件的风格 rect 控件显示区域pParantWnd 父窗口指针 nID 命令ID值dwStyle中可以使用以下一些树形控件的专用风格:TVS_HASLINES 在父/子结点之间绘制连线TVS_LINESATROOT 在根/子结点之间绘制连线TVS_HASBUTTONS 在每一个结点前添加一个按钮,用于表示当前结点是否已被展开TVS_EDITLABELS 结点的显示字符可以被编辑TVS_SHOWSELALWAYS 在失去焦点时也显示当前选中的结点TVS_DISABLEDRAGDROP 不允许Drag/DropTVS_NOTOOLTIPS 不使用ToolTip显示结点的显示字符树控件通常和图像列表控件一起使用,在树控件中可以显示图像列表中的图标,即为树控件添加图标。CImageList * SetImageList(CImageList * pImageList , int nImageListType);pImageList 标识图像列表控件指针nImageListType 标识图像列表类型Eg.m_Tree.Create(TVS_LINESATROOT|TVS_HASLINES|TVS_HASBUTTONS|WS_BORDER);.m_ImageList.Create(16,16,ILC_COLOR24|ILC_MASK,1,0);.m_Tree.SetImageList(&m_ImageList , LVSIL_NORMAL);2 向树控件中插入数据在树形控件中每一个结点都有一个句柄(HTREEITEM),同时添加结点时必须提供的参数是该结点的父结点句柄。格式:1. HTREEITEM insertItem(LPTVINSERTSTRUCT lpInsertStruct); lpInsertStruct LPTVINSERTSTRUCT结构指针,LPTVINSERTSTRUCT结构中包含了插入操作的详细信息。2. HTREEITEM insertItem(UINT nMask ,LPCTSTR lpszItem ,int nImage ,int nSelectdeImage ,UINT nState ,UINT nStateMask , LPARAM lParam ,HTREEITEM hParent ,HTREEITEM hInsertAfter);nMask 节点的哪些信息被设置 lpszItem 节点的文本nImage 节点的图像索引 nSelectdeImage 节点状态nSelectdeImage 节点选中时的图标索引nStateMask 节点的哪些状态被设置lParam 指定关联节点的附加信息 hParent 父节点句柄hInsertAfter 新插入节点后面的节点句柄3. HTREEITEM insertItem(LPCTSTR lpszItem ,HTREEITEM hParent =TVI_ROOT, HTREEITEM hInsertAfter=TVI_LAST);4. HTREEITEM insertItem(LPCTSTR lpszItem , int nImage ,int nSelectedImage ,HTREEITEM hParent =TVI_ROOT,HTREEITEM hInsertAfter=TVI_LAST);三展开或收缩树控件节点BOOL Expand(HTREEITEM hItem ,UINT nCode);hItem 展开的节点句柄nCode 展开的动作TVE_COLLAPSE: 收缩所有节点TVE_COLLAPSERESET: 收缩节点,移除子节点TVE_EXPAND: 展开所有节点TVE_TOGGLE: 展开或收缩当前节点4 删除节点BOOL DeleteItem(HTREEITEM hItem);hItem 是删除节点的句柄BOOL DeleteAllItem(); 删除所有节点为了掌握上述的使用方法,下面举例说明:创建树控件步骤:1. 创建一个基于对话框的应用程序,声明一个CTreeCtrl类变量m_Tree及一个图像列表对象m_ImageList, 向工程中导入想要显示的图标资源。2. 在OnInitDialog()函数中输入如下程序m_Tree.Create(TVS_LINESATROOT|TVS_HASLINES|TVS_HASBUTTONS|WS_BORDER|LVS_SHOWSELALWAYS,CRect(0,0,0,0),this,10001); /创建树控件m_Tree.MoveWindow(10,10,300,200); /设置树控件显示位值m_Tree.ShowWindow(SW_SHOW); /显示控件/当已经在对话框中添加数控件并设置完成时,不用写以上三句 m_ImageList.Create(16,16,ILC_COLOR24|ILC_MASK,1,0); m_ImageList.Add(AfxGetApp()-LoadIcon(IDI_ICON1); ./此处省略 向图像列表中添加图标,图标个数由编程者决定 m_Tree.SetImageList(&m_ImageList , LVSIL_NORMAL);HTREEITEM m_Root;m_Root=m_tree.InsertItem(根节点想输入的文本,0,0); /根节点HTREEITEM m_Child;m_Child=m_tree.InsertItem(根节点下的子节点 ,0,0, m_Root ); ./此处省略 节点个数按照需要添加 /注:没加深一层节点,都需要声明保存该层节点的变量。如HTREEITEM /m_Child; m_Tree.Expand(m_Root,TVE_EXPAND); 3. 删除选中节点HTREEITEM m_Item=m_Tree.GetSelectedItem();m_Tree.DeleteItem(m_Item);5 获取选中节点HTREEITEM m_Item = m_Tree.GetSelectedItem();/获取选中节点句柄CString m_sql=m_tree.GetItemText(m_Item);/选中节点的文本值6 获取选中节点的父节点HTREEITEM Parent=m_tree.GetParentItem(m_Item);CString strParent=m_tree.GetItemText( Parant);获得根节点HTREEITEM Root=m_tree.GetRootItem();获得一个节点的子节点HTREEITEM Child=m_tree.GetChildItem(m_node);/m_node为操作节点int GetNextItem( int nItem, int nFlags ) const如果成功则返回下一个项的句柄;否则返回NULL。nFlags可以是下列值之一: TVGN_CARET 获取当前被选择的项。 TVGN_CHILD 获取第一个子项。 TVGN_DROPHILITE 获取是一次拖放操作的目标的项。 TVGN_FIRSTVISIBLE 获取第一个可见的项。 TVGN_NEXT 获取下一个兄弟项。 TVGN_NEXTVISIBLE 获取跟随在指定项之后的下一个可视项。 TVGN_PARENT 获取指定项的父项。 TVGN_PREVIOUS 获取前一个兄弟项。 TVGN_PREVIOUSVISIBLE 获取在指定项之前的第一个可视项。 TVGN_ROOT 获取根项的第一个子项,指定项是该根项的一个部分。 Eg.m_child=m_Tree1.GetNextItem(m_child,TVGN_NEXT);附录1是本人所编的一个程序,仅供参考附录BOOL CTreeDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization here此处一下为添加程序HTREEITEM m_Child,m_Child1,m_Child2;HTREEITEM m_Root;m_Root=m_tree.InsertItem(树形结构示例,0,0); /根节点m_Child=m_tree.InsertItem(Cancer,0,0,m_Root); /第一层子节点m_Child1=m_tree.InsertItem(MASS,0,0,m_Child); /第一个节点下的子节点,m_Child2=m_tree.InsertItem(Density,0,0,m_Child1);m_tree.InsertItem(fat containing,0,0,m_Child2);m_tree.InsertItem(low density,0,0,m_Child2);m_tree.InsertItem(equal density,0,0,m_Child2);m_tree.InsertItem(high density,0,0,m_Child2);m_Child2=m_tree.InsertItem(Shape,0,0,m_Child1);m_tree.InsertItem(IRREGULAR,0,0,m_Child2);m_tree.InsertItem(ARCHITECTURAL_DISTORTION,0,0,m_Child2);m_tree.InsertItem(LOBULATED,0,0,m_Child2);m_tree.InsertItem(OVAL,0,0,m_Child2);m_tree.InsertItem(ROUND,0,0,m_Child2);m_Child2=m_tree.InsertItem(Margins,0,0,m_Child1);/第四层2m_tree.InsertItem(ILL_DEFINED,0,0,m_Child2);m_tree.InsertItem(SPICULATED,0,0,m_Child2);m_tree.InsertItem(N/A,0,0,m_Child2);m_tree.InsertItem(CIRCUMSCRIBED,0,0,m_Child2);m_tree.InsertItem(MICROLOBULATED,0,0,m_Child2);m_tree.InsertItem(OBSCURED,0,0,m_Child2);m_Child2=m_tree.InsertItem(benign,0,0,m_Child1);m_Child2=m_tree.InsertItem(malignant,0,0,m_Child1);m_Child1=m_tree.InsertItem(CALCIFICATION,0,0,m_Child);/第二层2m_Child2=m_tree.InsertItem(Density,0,0,m_Child1);m_tree.InsertItem(fat containing,0,0,m_Child2);m_tree.InsertItem(low density,0,0,m_Child2);m_tree.InsertItem(equal density,0,0,m_Child2);m_tree.InsertItem(high density,0,0,m_Child2);m_Child2=m_tree.InsertItem(type,0,0,m_Child1);/第四层2m_tree.InsertItem(LUCENT_CENTER,0,0,m_Child2);m_tree.InsertItem(ROUND_AND_REGULAR,0,0,m_Child2);m_tree.InsertItem(PLEOMORPHIC,0,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于百色疫情的应急预案
- 新冠肺炎学校外出应急预案
- 绿色咨询创业方案模板
- 美容咨询与沟通方案
- 砖厂股份收购与转让合同履行进度及验收协议
- 知识产权转让协议:智慧能源管理与软件开发
- 食品行业离职员工离职补偿及商业秘密保护合同
- 创业夫妻离婚财产分割与公司股权处理协议
- 离婚后子女抚养费用支付及变更条件合同
- 离婚协议书附加借款清偿责任及资产评估合同
- 《人工智能基础与应用(第2版)》完整全套教学课件
- 【MOOC答案】《VLSI设计基础(数字集成电路设计基础)》(东南大学)章节作业慕课答案
- 活科技馆试题及答案
- 中小学心理健康课程标准2022版
- 质量改进培训课件
- 2025年河北省中考数学试卷(含解析)
- 组装工艺培训
- 《会计基础》课程标准
- 2025年江苏省苏州市中考英语真题(原卷版)
- 2025-2030船用内燃机行业发展分析及投资价值研究咨询报告
- 《新编日语泛读教程学生用书1》课件-新编日语泛读教程 第三册 第1课
评论
0/150
提交评论