MFC控件(四)(树视图控件TreeControl)

来源:互联网 发布:淘宝商城女装新款秋装 编辑:程序博客网 时间:2024/05/22 06:43
 

添加一树视图控件,关联变量:CtreeCtrl m_OrgInfo;   

1、对话框类中添加成员变量:

CimageList m_ImageList;

2、

m_ImageList.Create(24, 24, ILC_COLOR24|ILC_MASK, 1, 1);

3、

    m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON1)));

    m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON2)));

    m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON3)));

    m_ImageList.Add(LoadIcon(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_ICON4)));

4、

    m_OrgInfo.SetImageList(&m_ImageList, TVSIL_NORMAL);

将树视图控件同图像列表控件相关联

5、

    HTREEITEM hProvince = m_OrgInfo.InsertItem("吉林省", 0, 0);

添加根节点,返回一节点的句柄,为其添加子节点时有用。

节点文本

节点图像索引

节点被选中时的图像索引

    HTREEITEM hTown = m_OrgInfo.InsertItem("松原市", 1, 1, hProvince);

    m_OrgInfo.InsertItem("白城市", 1, 1, hProvince);

    m_OrgInfo.InsertItem("吉林市", 1, 1, hProvince);

    m_OrgInfo.InsertItem("长春市", 1, 1, hProvince);

 

    m_OrgInfo.InsertItem("扶余县", 2, 2, hTown);

    m_OrgInfo.InsertItem("前郭县", 2, 2, hTown);

    m_OrgInfo.InsertItem("长岭县", 2, 2, hTown);

    m_OrgInfo.InsertItem("农安县", 2, 2, hTown);

    m_OrgInfo.InsertItem("宁江区", 2, 2, hTown);

修改树视图控件文本颜色

 

树视图控件的复选功能

 

对话框初始化部分如上:

该方法用于遍历树节点:

void CCheckTreeDlg::IterateTree(HTREEITEM hItem)

{

    if (hItem != NULL)

    {

       if (m_OrgInfo.GetCheck(hItem))

// GetCheck判复选框是否被选中

       {

           m_SelItemList.Add(hItem);

       }

       HTREEITEM hSibling = m_OrgInfo.GetNextItem(hItem, TVGN_NEXT);

// GetNextItem获得的是下个兄弟节点,而非子节点

       while (hSibling)

       {

           if (m_OrgInfo.GetCheck(hSibling))

           {

              m_SelItemList.Add(hSibling);

           }

           HTREEITEM hSibChild = m_OrgInfo.GetChildItem(hSibling);

           if (hSibChild)

           {

              IterateTree(hSibChild);

           }

           hSibling = m_OrgInfo.GetNextItem(hSibling, TVGN_NEXT);

       }

       HTREEITEM hChild = m_OrgInfo.GetChildItem(hItem);

       if (hChild != NULL)

       {

           IterateTree(hChild);

       }

    }

}

按钮单击事件:

void CCheckTreeDlg::OnTest()

{

    m_SelItemList.RemoveAll();

清空数组

    m_SelList.ResetContent();

清空列表框中内容

    HTREEITEM hRoot = m_OrgInfo.GetRootItem();

GetRootItem获取根节点

    IterateTree(hRoot);//调用递归函数

    int nCount = m_SelItemList.GetSize();

数组的GetSize方法,获取数组中元素数目

    HTREEITEM hItem = NULL;

    CString szItemText = "";

    for (int i=0; i<nCount; i++)

    {

       hItem = m_SelItemList.GetAt(i);

获取树控件句柄

       if (hItem != NULL)

       {

           szItemText = m_OrgInfo.GetItemText(hItem);

根据句柄选中文本

           m_SelList.AddString(szItemText);

将文本加入列表框

       }

    }

}

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩眼睛近视怎么办才能恢复正常 3岁宝宝近视怎么办啊 6个月婴儿近视怎么办 近视眼的人老了怎么办 一千多度的近视怎么办 近视镜片磨花了怎么办 眼镜镜片磨花了怎么办 戴眼镜鼻梁有印怎么办 狗狗发烧怎么办最有效 狗狗感冒怎么办最有效 狗狗发烧去医院怎么办 眼睛里长了虫子怎么办 吃了没熟的猪肉怎么办 没熟的鸡肉吃了怎么办 狗狗大便有绦虫怎么办 吃了有虫的猪肉怎么办 米猪肉吃了会怎么办 吃了鱼的寄生虫怎么办 鱼身体里有线虫怎么办 幼猫半夜一直叫怎么办 猫半夜4点叫不停怎么办 眼睛里长了黄斑怎么办 眼睛周围长小疙瘩怎么办 眼睛被手机砸了怎么办 眼睛被东西砸了怎么办 眼睛被打了一下怎么办 眼睛被树枝伤了怎么办 眼球被打了一下怎么办 眼睛黄有血丝是怎么办 上眼皮有异物感怎么办 20岁眼周围皱纹怎么办 才22岁眼睛皱纹怎么办 眼周围发干皱纹怎么办 眼周围淤血肿了怎么办 每到秋季就咳嗽怎么办 左肾泥沙样结石怎么办 双肾泥沙样结石怎么办 温州市民卡丢了怎么办 上眼皮过敏肿了怎么办 上眼皮又痒又肿怎么办 上眼皮红肿痛是怎么办