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行设置为没有选中的状态
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PEB结构块解析_汉字结构三十二法图

    PEB结构块解析_汉字结构三十二法图peb结构块解析:项目需要获取程序运行的一些状态,目前只能获取寄存器信息,故采用fs寄存器获取peb信息,本文主要探索peb中可以获得的进程信息。windbg信息如下:winxp下,和win7不一样,下面为xp环境dtnt!_peb+0x000InheritedAddressSpace:UChar+0x001ReadImageFileExecOptions:

    2025年8月2日
    3
  • 小程序align-items和justify-content 对齐方式之不同

    小程序align-items和justify-content 对齐方式之不同

    2021年3月12日
    235
  • renren-fast-vue项目结构解析

    renren-fast-vue项目结构解析renren-fast-vue项目结构解析————github官网

    2022年7月28日
    8
  • bizchartsX轴文字问题

    bizchartsX轴文字问题1.X轴文字太长了,发生重叠//chartList是数据当横坐标大于15个值得时候,关闭自动旋转,自定义设置旋转角度12度<Axisname=”text”label={{rotate:chartList.length>15?12:0,autoRotate:chartList.length>15?fals…

    2025年7月21日
    2
  • BT渗透「建议收藏」

    BT渗透「建议收藏」PHP交流群:294088839,Python交流群:652376983 whois域名/ip查看域名的详细信息。ping域名/ip测试本机到远端主机是否联通。dig域名/ip查看域名解析的详细信息。host-l域名dns服务器传输zone。扫描nmap:-sS半开扫描TCP和SYN扫描。-sT完全TCP连接扫描。-sUUDP扫描-PSs…

    2022年4月29日
    51
  • 这款开源自动化运维平台,让你彻底摆脱人肉运维「建议收藏」

    这款开源自动化运维平台,让你彻底摆脱人肉运维「建议收藏」  大家好,我是小编南风吹,每天推荐一个小工具/源码,装满你的收藏夹,让你轻松节省开发效率,实现不加班不熬夜不掉头发!  今天小编推荐一款面向中小型企业设计的轻量级无Agent的自动化运维平台整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。开源协议  使用AGPL-3.0开源许可协议链接地址  公众号【Github导航站】回复关键词【spu】获取git地址特性批量执行:主机命令在线批量执行在线终端:主机支

    2022年5月13日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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