VC-MFC Tree控件的使用VC-MFC Tree控件的使用
Tree空间的使用
一、
1.InsertItem 添加节点
参数: 文字,图标,父节点
返回: HTREEITEM
示例: 添加一系列节点
HTREEITEM hItem = m_Tree.InsertItem("root",NULL,NULL);///root就是节点的标题 int i,j;
for (i=0;i<4;i++) {
HTREEITEM hSubItem = m_Tree.InsertItem("item",NULL,NULL,hItem);
...
VC-MFC Tree控件的使用
Tree空间的使用
一、
1.InsertItem 添加节点
参数: 文字,图标,父节点
返回: HTREEITEM
示例: 添加一系列节点
HTREEITEM hItem = m_Tree.InsertItem("root",NULL,NULL);///root就是节点的标题 int i,j;
for (i=0;i<4;i++) {
HTREEITEM hSubItem = m_Tree.InsertItem("item",NULL,NULL,hItem);
for (j=0;j<3;j++) {
m_Tree.InsertItem("subitem",NULL,NULL,hSubItem);
}
}
InsertItem函数的第一个参数就是设置他的节点标题
2.ModifyStyle 设置风格
参数: 取消的风格,增加的风格
示例: 在对话框初始化时设置风格
BOOL CMfc1Dlg::OnInitDialog(){ //...
m_Tree.ModifyStyle(NULL,TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT);
}
3.DeleteItem 删除节点
4.DeleteAllItems 删除全部节点
5.Expand 展开/收缩节点
参数: 节点HTREEITEM,展开/收缩
示例:
m_Tree.Expand(hItem,TVE_EXPAND); /////////////////////////////////// 二、
VC++中 mfc在tree control各个子项目如何添加响应函数的回答 很简单:
第一步:在向导中给你的树形控件关联一个CTreeCtrl的变量(就像你代码中的m_Mess) 第二步:在向导中,添加该树形控件的NM_Click消息(就是鼠标单击消息,以下假设函数名为OnClickTree)
第三步:在代码中添加你的数据(主要是在初始化树形控件的数据的函数中,如你代码中的OnInitDialog()就可以)
HTREEITEM hRoot = m_ctrlTree.InsertItem("北京");
m_ctrlTree.SetItemData(hRoot, 1); HTREEITEM hChild = m_ctrlTree.InsertItem("朝阳区", hRoot); m_ctrlTree.SetItemData(hChild, 2);
hChild = m_ctrlTree.InsertItem("海淀区", hRoot);
m_ctrlTree.SetItemData(hChild, 3);
注意:我在上面用了SetItemData函数,主要是给不同的节点添加不同的标记 ,在下面的单击消息函数中就可以看出它的作用
第四步:在OnClickTree函数中添加鼠标单击消息响应代码
CPoint pt = GetCurrentMessage()->pt; //获取当前鼠标点击消息的坐标点
m_ctrlTree.ScreenToClient(&pt); //将鼠标的屏幕坐标,转换成树形控件的客户区坐标
UINT uFlags = 0;
HTREEITEM hItem = m_ctrlTree.HitTest(pt, &uFlags);//然后做点击测试
if ((hItem != NULL) && (TVHT_ONITEM & uFlags))//如果点击的位置是在节点位置上面 {
m_ctrlTree.SelectItem(hItem); //获取开始我们设置的数据,注意这就是我为什么开始要每个节点设置不同的数据的原因。当然,如果你的数据节点比较少,你也可以通过获取节点的文字,如上面设置的"海淀区",然后通过字符串比较来判断点击了哪个节点
int nDat = m_ctrlTree.GetItemData(hItem);
//然后根据不同的节点,你完成不同的动作即可
switch (nDat)
{
case 1:
AfxMessageBox("北京");
break;
case 2:
AfxMessageBox("北京->朝阳区");
break;
case 3:
AfxMessageBox("北京->海淀区");
break;
default:
AfxMessageBox("ERROR");
}
}
本文档为【VC-MFC Tree控件的使用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。