VC高级编程.doc
《VC高级编程.doc》由会员分享,可在线阅读,更多相关《VC高级编程.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VC高级编程树控件可以对数据进行分层显示。在树控件中,除根节点以外,每个节点都有一个父节点,可以拥有多个兄弟节点和子节点,从而可以是数据以梳妆结构清晰的显示出来。(树控件图标)一 创建树控件BOOL Create(DWORD dwStyle , const RECT & rect , CWnd * pParentWnd ,UINT nID);dwStyle 控件的风格 rect 控件显示区域pParantWnd 父窗口指针 nID 命令ID值dwStyle中可以使用以下一些树形控件的专用风格:TVS_HASLINES 在父/子结点之间绘制连线TVS_LINESATROOT 在根/子结点之间绘制
2、连线TVS_HASBUTTONS 在每一个结点前添加一个按钮,用于表示当前结点是否已被展开TVS_EDITLABELS 结点的显示字符可以被编辑TVS_SHOWSELALWAYS 在失去焦点时也显示当前选中的结点TVS_DISABLEDRAGDROP 不允许Drag/DropTVS_NOTOOLTIPS 不使用ToolTip显示结点的显示字符树控件通常和图像列表控件一起使用,在树控件中可以显示图像列表中的图标,即为树控件添加图标。CImageList * SetImageList(CImageList * pImageList , int nImageListType);pImageList
3、标识图像列表控件指针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);二 向树控件中插入数据在树形控件中每一个结点都有一个句柄(HTREEITEM),同时添加结点时必须提供的参数是该结点的父结点句柄。格式:1. HTREEITEM insertItem(L
4、PTVINSERTSTRUCT 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 节点的哪些信息被设置 lpszIte
5、m 节点的文本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 nImag
6、e ,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: 展开或收缩当前节点四 删除节点BOOL DeleteItem(HTREEITEM hItem);hItem 是删除节点的句
7、柄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(1
8、0,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.Ins
9、ertItem(根节点想输入的文本,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);五 获取选中节点HTREEITEM m_Item =
10、m_Tree.GetSelectedItem();/获取选中节点句柄CString m_sql=m_tree.GetItemText(m_Item);/选中节点的文本值六 获取选中节点的父节点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 G
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 高级 编程
限制150内