zoukankan      html  css  js  c++  java
  • 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博客的好友拍砖,留言。
  • 相关阅读:
    Visual Studio Code的常用快捷键
    requests模块
    爬虫基本原理
    Django-分页、中间件和请求的声明周期
    Django-admin管理工具
    Django-form表单
    Django-认证系统
    cookie、session和token
    Ajax
    Django进阶Model篇—数据库操作(ORM)
  • 原文地址:https://www.cnblogs.com/M4ster/p/win32_treeView.html
Copyright © 2011-2022 走看看