zoukankan      html  css  js  c++  java
  • 基于对话框的编程之树控件的使用

    一、效果图

    二、具体步骤

    1、新建一个MFC应用程序,命名为06 CTreeCtrl,应用程序类型选择基于对话框,资源语言选择中文简体,其他默认设置

    2、在工具箱中可以找到树控件(Tree Control),拖拽至对话框中

    3、右键属性,修改Has Buttons为True,修改Has Lines为True,修改Lines At Root为True

    显示效果:

    4、为树控件添加变量,设置访问权限为private,变量名称为m_tree

    5、将准备好的Icon图标复制到res文件夹下

    6、在资源视图中,找到Icon,右键添加资源,选择import,到res文件夹加入icon图标

    7、在OnInitDialog函数中编辑代码,将CImageList的声明写到.h文件中做成员属性

        //树控件的使用
        //1、设置图标
    
        //装备HICON图标
        HICON icons[4];
        icons[0] = AfxGetApp()->LoadIconW(IDI_ICON1);
        icons[1] = AfxGetApp()->LoadIconW(IDI_ICON2);
        icons[2] = AfxGetApp()->LoadIconW(IDI_ICON3);
        icons[3] = AfxGetApp()->LoadIconW(IDI_ICON4);
    
        //CImageList list;//必须保存住这个集合,写到.h中做成员属性
    
        //创建图片集合
        list.Create(30, 30, ILC_COLOR32, 4, 4);
        //添加具体图片
        for (int i = 0; i < 4;i++)
        {
            list.Add(icons[i]);
        }
        m_tree.SetImageList(&list, TVSIL_NORMAL);
    
        //2、设置节点
        HTREEITEM root = m_tree.InsertItem(TEXT("根节点"), 0, 0, NULL);
        HTREEITEM parent = m_tree.InsertItem(TEXT("父节点"), 1, 1,root);
        HTREEITEM sub1 = m_tree.InsertItem(TEXT("子节点1"), 2, 2, parent);
        HTREEITEM sub2 = m_tree.InsertItem(TEXT("子节点2"), 3, 3, parent);
    
        //设置默认选项
        m_tree.SelectItem(sub1);

    此时运行程序,可以看到效果图的显示结果

    8、树控件右键属性,在Control Events中添加控件事件(TVN_SELCHANGED),此事件在选中项发生改变时触发

    编辑OnTvnSelchangedTree1事件

    void CMy06CTreeCtrlDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult)
    {
        LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
        // TODO: Add your control notification handler code here
        *pResult = 0;
    
        //获取当前项
        HTREEITEM item = m_tree.GetSelectedItem();
        CString name = m_tree.GetItemText(item);
        MessageBox(name);
    }

    效果如下:

  • 相关阅读:
    Ural 1996 Cipher Message 3 (生成函数+FFT)
    UVA 12633 Super Rooks on Chessboard (生成函数+FFT)
    HDU 5307 He is Flying (生成函数+FFT)
    BZOJ 2039 人员雇佣 (最小割)
    BZOJ 3158 千钧一发 (最大流->二分图带权最大独立集)
    BZOJ 3144 [HNOI2013]切糕 (最大流+巧妙的建图)
    BZOJ 3774 最优选择 (最小割+二分图)
    BZOJ 3876 [AHOI/JSOI2014]支线剧情 (最小费用可行流)
    BZOJ 3771 Triple (FFT+生成函数+容斥)
    洛谷 P3121 【[USACO15FEB]审查(黄金)Censoring (Gold)】
  • 原文地址:https://www.cnblogs.com/yanchaoyi/p/12677929.html
Copyright © 2011-2022 走看看