VC高级编程.doc

上传人:asd****56 文档编号:70331028 上传时间:2023-01-19 格式:DOC 页数:9 大小:285KB
返回 下载 相关 举报
VC高级编程.doc_第1页
第1页 / 共9页
VC高级编程.doc_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《VC高级编程.doc》由会员分享,可在线阅读,更多相关《VC高级编程.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

11、etNextItem( int nItem, int nFlags ) const如果成功则返回下一个项的句柄;否则返回NULL。nFlags可以是下列值之一: TVGN_CARET 获取当前被选择的项。 TVGN_CHILD 获取第一个子项。 TVGN_DROPHILITE 获取是一次拖放操作的目标的项。 TVGN_FIRSTVISIBLE 获取第一个可见的项。 TVGN_NEXT 获取下一个兄弟项。 TVGN_NEXTVISIBLE 获取跟随在指定项之后的下一个可视项。 TVGN_PARENT 获取指定项的父项。 TVGN_PREVIOUS 获取前一个兄弟项。 TVGN_PREVIOUSV

12、ISIBLE 获取在指定项之前的第一个可视项。 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) =

13、 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);

14、/ 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(Densi

15、ty,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.Inser

16、tItem(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_Child

17、2);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(C

18、ALCIFICATION,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_

19、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,m_Child2);m_tree.InsertItem(AMORPHOUS,0,0,m_Child2);m_tree.InsertItem(FINE_LINEAR_BRANCHING,0,0,m_Child2);m_tree.InsertItem(PUNCTATE,0,0,m_Child2);m_Child2=m

20、_tree.InsertItem(distribution,0,0,m_Child1);/第四层3m_tree.InsertItem(SEGMENTAL,0,0,m_Child2);m_tree.InsertItem(REGIONAL,0,0,m_Child2);m_tree.InsertItem(CLUSTERED,0,0,m_Child2);m_tree.InsertItem(LINEAR,0,0,m_Child2);m_tree.InsertItem(N/A,0,0,m_Child2);m_tree.InsertItem(DIFFUSE,0,0,m_Child2);m_Child2=m_tree.InsertItem(benign,0,0,m_Child1);m_Child2=m_tree.InsertItem(malignant,0,0,m_Child1);return TRUE; / return TRUE unless you set the focus to a control运行结果如图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁