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