List Control & Tree Control & CImageCtrl 基本常规用法学习笔记

一. List Control:

       属性中Style有四种, 其中只有Report才分为多列. 初始化时, 先定义显示方式, 再插入列信息.

      DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE;       // 具体显示效果可以查MSN
      m_List.SetExtendedStyle(dwExStyle);
      m_List.InsertColumn(0,"File Name",LVCFMT_CENTER,300);  //第一列,列名"File Name",居中显示,宽度300;

      m_List.InsertItem(nItem,0,i);  // 插入一行记录, nItem一般可以等会m_List.GetItemCount()来获取下一插入位置. 0表示第1列; i 在这里是CImageCtrl中图象对列中的第i个图标.
      m_List.SetItemText(nItem,0,file.GetFileName()); //设置第nItem行,第1列的值.
      m_List.SetItemText(nItem,1,info.szTypeName); 

      m_List.DeleteAllItems();  //删除所有记录;
      m_List.DeleteItem(nItem); //删除第nItem条记录;
      m_List.DeleteColumn(nCol);  //删除第nCol列

      int pos = m_List.GetSelectionMark();   //单击或双击事件时, 获得选项中记录的Index;
      CString fileName = m_List.GetItemText(pos,0);   //获得第pos行,第0列的内容.

二. Tree Conrol

      CTreeCtl m_tree;
      DWORD dwStyle = GetWindowLong(m_tree.m_hWnd, GWL_STYLE);   // 获得当前树控件的GWL_TYPE显示类型
      dwStyle |= TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT;    //自定义显示类型
      SetWindowLong(m_tree.m_hWnd, GWL_STYLE, dwStyle);   // 设置显示类型

      HTREEITEM m_hRoot = m_tree.InsertItem("My Computer");  // 插入一个根节点. 为HTREEITEM数据类型
      m_tree.Expand(m_hRoot,TVE_EXPAND);   // 将m_hRoot根结点设置为展开样式

        //GetLogicalDrives(m_hRoot);     //  get the logical Drive (C: E: F: ...)
       size_t szAllDrives = GetLogicalDriveStrings(0,NULL);   //获取所有的本地驱动盘的盘符, 各盘符用""空格分开, 返回总长度
       char* pDriverString = new char[szAllDrives + sizeof(_T(""))];
       GetLogicalDriveStrings(szAllDrives, pDriverString);
       size_t szDriver = strlen(pDriverString);   // strlen 所计算的长度以空格("")为界
       while ( szDriver >0 )
       {  m_tree.InsertItem(pDriverString, hParent); //在hParent节点下插入一个名为pDriveString的子节点
        pDriverString += szDriver + 1;
        szDriver = strlen(pDriverString);
       }

      // TVITEM item = pNMTreeView->itemNew;
       HTREEITEM hChild =  m_tree.GetChildItem(item.hItem); 获得item.hItem(HTREEITEM类型的父节点)下的一个子节点
      CString strtemp = m_tree.GetItemText(HTREEITEM hCurrent); // 获得hCurrent节点的节点名
      HTREEITEM hParent = m_tree.GetParentItem(hCurrent); //获得父节点

三.CImageCtrl

      CImageCtrl m_ImageList;
      初始化时:
       m_ImageList.Create(16,16,ILC_COLOR32,10,30);  //设置为小图标.10表示图像列表包含的图像数量;30表示图像列表可控制的图像数量。
       m_List.SetImageList(&m_ImageList,LVSIL_SMALL);

       int i = m_ImageList.Add(info.hIcon);  //向m_ImageList中加入一个图标
       m_List.InsertItem(nItem,0,i); 在m_List的第nItem行,第0行加入第i个图标

更多CImageCtrl的资料可参看:http://blog.csdn.net/haoyuenan/archive/2007/03/10/1525785.aspx


       SHFILEINFO info;   //用于记录文件信息的数据类型
       SHGetFileInfo(strTemp+file.GetFileName(), 0, &info, sizeof(info),       SHGFI_ICON|SHGFI_DISPLAYNAME|SHGFI_TYPENAME);
       //第一个参数表示文件的完整路径和文件名(C:/A/b.doc); SHGFI_***为info中需要包含的内容
        info.hIcon //图标
       info.szTypeName //文件类型

    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值