MFC下CListCtrl的使用笔记

在MFC中建立基于对话框的工程,仅保留确定取消按钮,添加CListCtrl控件并将其View属性修改为Report,并为其添加ID与控件变量m_ListCtrl,在对话框的OnInitDialog函数中添加如下代码:

m_ListCtrl.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);//初始化扩展风格

//插入列标题
LVCOLUMN lvColumn;
lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 90;
lvColumn.pszText = _T("SAR_X");
m_ListCtrl.InsertColumn(0, &lvColumn);//第一列

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT
;
lvColumn.cx = 90;
lvColumn.pszText = _T("SAR_Y");
m_ListCtrl.InsertColumn(0, &lvColumn);//第二列

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 90;
lvColumn.pszText = _T("MAP_X");
m_ListCtrl.InsertColumn(0, &lvColumn);//第三列

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 90;
lvColumn.pszText = _T("MAP_Y");
m_ListCtrl.InsertColumn(0, &lvColumn);//第四列

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 90;
lvColumn.pszText = _T("Error_X");
m_ListCtrl.InsertColumn(0, &lvColumn);//第五列

lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH;
lvColumn.fmt = LVCFMT_LEFT;
lvColumn.cx = 90;
lvColumn.pszText = _T("Error_Y");
m_ListCtrl.InsertColumn(0, &lvColumn);//第六列


在对话框上添加按钮,点击按钮添加数据主要代码如下:

int nCount = ListControl.GetItemCount();//获取当前已插入的行数
ListControl.InsertItem(nCount, _T(""));//插入一行
ListControl.SetItemText(nCount, 0, SAR_X);//第一列
ListControl.SetItemText(nCount, 1, SAR_Y);//第二列
ListControl.SetItemText(nCount, 2, MAP_X);//第三列
ListControl.SetItemText(nCount, 3, MAP_Y);//第四列

获取当前选择项,在CListCtrl空间属性中添加OnNMClickList这一函数,并将一下代码添加到函数中,即可实现左键单击获取到当前选择项,然后可以在该函数下进行其他相应处理

1.

POSITION p = ListControl.GetFirstSelectedItemPosition();//获取当前选中的行的第一行的位置
//获取选中的第一行的行索引
int nIndex = ListControl.GetNextSelectedItem(p);//可能多选,GetNextSelectedItem使p移动一个位置

//得到第index行.第2列的内容(下标从0开始)
CString strColumn = ListControl.GetItemText(nIndex,1);

2.

int nIndex=ListControl.GetSelectionMark();//获取选中的行
CString strPID =ListControl.GetItemText(nIndex, 1); //选中的行、列的值



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值