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);

转载于:https://www.cnblogs.com/zhanxue/p/10231821.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值