MFC list control 控件判断当前选中行,设置行选中,取消行选中[通俗易懂]

MFC list control 控件判断当前选中行,设置行选中,取消行选中

大家好,又见面了,我是全栈君。

判断当前选中的行

下面是一个button(按钮)的触发事件,按钮按下检测list control(列表)控件是否有选中的行,把选中的删除。(m_list 是list control 的变量名)

void CListDis::OnBnClickedButton2()
{ 
   
	// TODO: 在此添加控件通知处理程序代码
	int iItem;
	BOOL flag;
	flag = false;    // 判断标志,判断是否有选中行
	for (iItem = m_list.GetItemCount() - 1; iItem >= 0; iItem--)   // 获取列表的行数,进行循环判断
	{ 
   
		//m_list.GetItemState(iItem,LVIS_SELECTED)
		if (LVIS_SELECTED == m_list.GetItemState(iItem, LVIS_SELECTED))     //选中行的判断
		{ 
   
			flag = true;
			CString cs;
			cs.Format(TEXT("删除当前选中的第%d行"), iItem+1);
			MessageBox(cs);
			m_list.DeleteItem(iItem);

			// 在这里面进行更新容器以及更新文件 
			list<user>::iterator iter = file.users.begin();
			for (int i = 0; i != iItem; iter++, i++);
			file.users.erase(iter);
			file.WriteUsers(file.users);
			MessageBox(TEXT("删除成功"));
		}
	}
	
	// 在没有选中行的情况下,给出一个提示
	if (!flag) { 
   
		MessageBox(TEXT("当前好像什么都没有选中喔"), TEXT("删除失败"));
	}
}

设置 list control 行选中

设置行选中还需要把把list control 的 Always show selection 属性修改为 True,默认情况下False。

m_list.SetFocus();      // 获取焦点在列表上面
// 设置第i行为选中的状态
m_list.SetItemState(i, LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED); 

取消当前选中的行

m_list.SetItemState(i, 0, -1);  // 把第i行设置为没有选中的状态
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115093.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux tcp发包工具_怎么用命令行查IP

    linux tcp发包工具_怎么用命令行查IPSendip是一个linux平台的命令行发数据包工具,目前(2018年2月)支持的协议有ipv4、ipv6、icmp、tcp、udp、bgp、rip、ntp,作者表示其他协议将会后面支持,当他有空写的时候。Sendip很强大,它支持自定义头部和数据(也就是IP层以上的整个包),没有过多的限制,所以连源IP都可以随意写,而且里面也提供了一些默认的选项,可以择需而发,非常方便。又因为它是命令行的,还支…

  • datagrip 激活码【注册码】

    datagrip 激活码【注册码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • python进阶(4)文件操作[通俗易懂]

    python进阶(4)文件操作[通俗易懂]文件操作文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件open(file,mode='r',buffering=-

  • wireshark捕获tcp数据包_抓包分析详解

    wireshark捕获tcp数据包_抓包分析详解一.实验目的通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及“TCP三次握手”。通过抓包和分析数据包来理解TCP/IP协议,进一步提高理论联系实践的能力。二.实验内容1.本次实验重点:利用Wireshark抓TCP包及TCP包的分析。2.本次实验难点:分析抓到的TCP包。3.本次实验环境:Windows7,Wiresha…

  • 走过的laravel-admin 的坑

    走过的laravel-admin 的坑

    2021年10月21日
  • 我如何用前端技术得到XXOO网站的VIP[通俗易懂]

    我如何用前端技术得到XXOO网站的VIP[通俗易懂]查看作者原文讲解素材网页如图,这里只是说明整个网站的一些技术点,所以不该看的地方我都打上马赛克了,让我们揭开这些网站的整个前端工作原理首先刚进去的时候显示一堆乱七八糟的东西,点进去其中一个页面,下面各种虚假评论,然后每隔几秒钟弹出第几几几个会员充值成功,我们先把这个删掉好了,我们继续研究这个网站内部结构了正常情况每个页面的视频都是试看几十秒就会提醒你充值,当然这是这类网站的常

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号