MFC控件使用之ListCtrl


首先,當然是從工具箱拖放一個listctrl控件到窗口。

然后,給它關聯一個control類型的變量m_list,不會?好吧,看好了,在控件上單擊右鍵,選擇添加變量,在彈出的添加控件變量對話框中找到名稱這個編輯框,輸入m_list,點擊完成,之后就可以開車啦!

1、設置listctrl控件的樣式以及擴展樣式
樣式在控件屬性里可以設置,對話框的OnInitDialog方法中還可以再設置擴展樣式
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); // 整行選擇、網格線

括號中的內容可以設置以下的選項,用 “|” 隔開即可。
LVS_EX_CHECKBOXES      //每一行的最前面帶個復選框
LVS_EX_FULLROWSELECT    //整行選中
LVS_EX_GRIDLINES       //網格線
LVS_EX_HEADERDRAGDROP  //列表頭可以拖動

2、插入一整行
int InsertItem(int nItem, LPCTSTR lpszItem)
nItem:插入到第幾行
lpszItem:這一行第一列的文字
示例:m_list.InsertItem(0, "第一列的內容,可為空");

3、插入一列
int InsertColumn(int nCol, LPCTSTR lpszColumnHeading, int nFormat = LVCFMT_LEFT, int nWidth = -1, int nSubItem = -1 )
nCol:插入到第幾列
lpszColumnHeading:列名稱
nFormat:列對齊方式,左中右
nWidth:列寬度
nSubItem:子項的索引與列,可省略。
示例:m_list.InsertColumn(3, "WindowTitle", LVCFMT_CENTER, 100);

4、刪除操作
刪除一行:BOOL DeleteItem(nItem)
nItem:行編號
示例:m_list.DeleteItem(5);

刪除一列:BOOL DeleteColumn(nCol)
nCol:列編號
示例:m_list.DeleteColumn(5);

刪除所有列:
示例:while (m_list.DeleteColumn (0))

刪除所有內容,列標題仍在:BOOL DeleteAllItems()
示例:m_list.DeleteAllItems();

5、更新數據
BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );
nItem:行序號
nSubItem:列序號
lpszText:需要更新的內容
示例:m_list.SetItemText(3, 1, "需要更新的內容");

6、得到選中行的行號

多選:
      CString str;
      for(int i=0; i<m_list.GetItemCount(); i )
      {
           if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
           {
                str.Format(_T("選中了第%d行"), i);
                AfxMessageBox(str);

           }
      }
單選:
      POSITION pos = m_list.GetFirstSelectedItemPosition();
      if (pos == NULL)
           TRACE0("No items were selected!\n");
      else
      {
           while (pos)
           {
                int nItem = m_list.GetNextSelectedItem(pos);
           }
      }

7、移動滾動條使某一條隱藏的記錄顯示出來
BOOL EnsureVisible(int nItem,BOOL bPartialOK );
nItem:需要顯示的記錄的行號
bPartialOK:布爾值
示例:m_list.EnsureVisible(i, FALSE);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM