• win32 treeview


        // 1.create treeview
    
        DWORD dwStryle = WS_VISIBLE | WS_CHILD | TVS_HASLINES|TVS_SHOWSELALWAYS/*|TVS_LINESATROOT*/;// remove root-line style 
    
        HWND hTree = CreateWindow(WC_TREEVIEW,L"",dwStryle,0,0,0,0,hParent,(HMENU)IDC_CS_TREE,hInst,NULL);
    
        // 2. create Imagelist 
    
        HIMAGELIST hi;
    
        hi = ImageList_Create(24,24,ILC_COLOR24|ILC_MASK,1,3); // 创建像素为24*24 颜色深度为多彩24,因为图片不透明所以使用mask,初始化1,最大3
        HBITMAP hBmp = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BMP_TREE)); // 载入bitmap图片
        ImageList_AddMasked(hi,hBmp,RGB(0,0,0));                    // 将图片加入imagelist中 (我在添加中发现了一个问题,当时我的图片是23*24的结果就是天不上,将图片修改为24*24就OK了
        int iImageCount = ImageList_GetImageCount(hi);                // 可以获取到列表图片个数,添加完后可以比较下结果
    
        // 3. set imagelist to tree
        TreeView_SetImageList(hTree,hi,TVSIL_NORMAL);
    
        // 4. insert item 
    
        TVINSERTSTRUCT ti= {0};
        ti.item.mask=TVIF_TEXT|TCIF_IMAGE|TVIF_SELECTEDIMAGE;  
        ti.hParent=NULL;  
        ti.hInsertAfter=TVI_ROOT;  
        ti.item.iSelectedImage= ti.item.iImage=0;  
    
        ti.item.pszText=L"test";

    以上就是创建过程。

    消息处理,其中要处理WM_NOTIFY消息

    LRESULT cs_OnNotify(HWND hwnd,int idfrm,NMHDR* pnmhdr)
    {
        if (idfrm == IDC_CS_TREE)
        {
            if ( pnmhdr->code == TVN_SELCHANGED )
            {
                WCHAR szText[MAX_PATH];
                HTREEITEM hSelected ;
                TVITEM tvi = {0};
                tvi.mask = TVIF_TEXT;
                tvi.pszText = szText;
                tvi.cchTextMax = MAX_PATH;
              
                hSelected = TreeView_GetNextItem(hTree,hSelected,TVGN_CARET);
    
                tvi.hItem = hSelected;
                TreeView_GetItem(hTree,&tvi);
    
                SetWindowText(hwnd,szText);
            }
    
        }
    
        return FALSE ;
    }

    以上是我用到的选择某Item时,获取text并将窗体text改变。

    可以根据相像自己改动下

    签名档: 从事网络安全和编程的我,很希望能找到志同道合的朋友交流。 欢迎cn博客的好友拍砖,留言。
  • 相关阅读:
    C# 文本,图片 与 Base64的相互转换
    vue3.x 中的自定义组件及使用
    vue 的TodoList 小Demo
    vue中的条件渲染 v-show、v-if、v-else、v-else-if
    vue 使用$refs获取表单内容及v-model双向数据绑定
    python-异常处理&操作数据库&网络编程
    python-接口开发
    python-数据库&邮件
    python-函数和模块
    python-函数&list&dic&集合&文件读取
  • 原文地址:https://www.cnblogs.com/M4ster/p/win32_treeView.html
Copyright © 2020-2023  润新知