MFC ListControl的使用

來源:互聯網
上載者:User
1. 設定ListControl風格1.1 四種風格

 
LVS_ICON: 為每個item顯示大表徵圖
  LVS_SMALLICON:
為每個item顯示小表徵圖
  LVS_LIST:顯示一列帶有小表徵圖的item
  LVS_REPORT: 顯示item詳細資料

1.2 設定風格及擴充風格1.2.1 此部分轉自:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistviewstyles.asp
      LONG lStyle;      lStyle =GetWindowLong(m_list.m_hWnd, GWL_STYLE);//擷取當前視窗style      lStyle &= ~LVS_TYPEMASK; //清除顯示方式位      lStyle |= LVS_REPORT; //設定style      SetWindowLong(m_list.m_hWnd, GWL_STYLE,lStyle);//設定style      DWORD dwStyle =m_list.GetExtendedStyle();      dwStyle |= LVS_EX_FULLROWSELECT;//選中某行使整行高亮(只適用與report風格的listctrl)      dwStyle |= LVS_EX_GRIDLINES;//網格線(只適用與report風格的listctrl)      dwStyle |= LVS_EX_CHECKBOXES;//item前產生checkbox控制項      m_list.SetExtendedStyle(dwStyle);//設定擴充風格      註:listview的style請查閱msdn
1.2.2 此部分來自揚子江:
     DWORD dwStyle = GetWindowLong(m_DeviceName.m_hWnd, GWL_STYLE);      dwStyle &= ~(LVS_TYPEMASK);     dwStyle &= ~(LVS_EDITLABELS);
     SetWindowLong(m_DeviceName.m_hWnd, GWL_STYLE, dwStyle | LVS_REPORT|LVS_NOLABELWRAP|LVS_SHOWSELALWAYS); //LVS_SHOWSELALWAYS為:一直選中item     m_DeviceName.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT/*|LVS_EX_CHECKBOXES*/);
 2. 添加列

    m_DeviceName.InsertColumn(0, _T("序號"), LVCFMT_LEFT, 50, 0);
    m_DeviceName.InsertColumn(1, _T("裝置名稱"), LVCFMT_LEFT, 150, 1);

3. 添加行

    由於List Control控制項不允許直接添加列資訊,所以需要先向控制項中添加行,添加行代碼如下:

    int row =m_CtrlList2.GetItemCount();
   
m_CtrlList.InsertItem(row,"");

    m_list.SetItemText(nRow, 1,
“jacky”);//設定資料

 

4. 刪除選中行

 POSITION ps;
 int iIndex;
 ps = m_DeviceMatch.GetFirstSelectedItemPosition();
 iIndex = m_DeviceMatch.GetNextSelectedItem(ps);
 m_DeviceMatch.DeleteItem(iIndex);

5. 得到選中行的文本

   CString strName = _T("");
   POSITION ps;
   int iIndex;

   ps = m_DeviceName.GetFirstSelectedItemPosition();
   iIndex = m_DeviceName.GetNextSelectedItem(ps);
   strName = m_DeviceName.GetItemText(iIndex, 1);

6. 選中與取消選中

    int nIndex = 0;
    //選中
    m_DeviceName.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
    //取消選中
    m_DeviceName.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.