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 //文件類型

    

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章