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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 校验和计算原理_CRC校验原理及代码

    校验和计算原理_CRC校验原理及代码校验和思路首先,IP、ICMP、UDP和TCP报文头都有检验和字段,大小都是16bit,算法基本上也是一样的。在发送数据时,为了计算数据包的检验和。应该按如下步骤:1、把校验和字段设置为0;2、把需要校验的数据看成以16位为单位的数字组成,依次进行二进制反码求和;3、把得到的结果存入校验和字段中在接收数据时,计算数据包的检验和相对简单,按如下步骤:1、把首部看成以16位为单位的数字组成,依次进行二

    2025年7月16日
    7
  • windows 2008 server 域管理命令

    windows 2008 server 域管理命令

    2022年3月8日
    49
  • table 样式美化

    1.单像素边框CSS表格这是一个很常用的表格样式。源代码:1<!–CSSgoesinthedocumentHEADoraddedtoyourexternalstylesheet–>2<styletype=”text/css”>3table.gridtable{4f…

    2022年4月5日
    33
  • pycharm安装包的操作路径「建议收藏」

    pycharm安装包的操作路径「建议收藏」

    2022年5月17日
    84
  • Keras学习率调整

    Keras学习率调整Keras提供两种学习率适应方法,可通过回调函数实现。1.LearningRateSchedulerkeras.callbacks.LearningRateScheduler(schedule)该回调函数是学习率调度器.参数schedule:函数,该函数以epoch号为参数(从0算起的整数),返回一个新学习率(浮点数)代码importkeras.backenda…

    2022年6月14日
    28
  • 计算机三级数据库技术笔记

    计算机三级数据库技术笔记文章目录第一章数据库应用系统开发方法1.1数据库应用系统生命周期1.1.1软件工程与软件开发方法1.1.2DBAS生命周期模型1.2规划与分析1.2.1系统规划与定义1.2.2可行性分析1.2.3项目规划1.3需求分析1.3.1数据需求分析1.3.2功能需求分析1.数据处理需求分析2.业务规则需求分析1.3.3性能需求分析1.3.4其他需求分析1.存储需求分析2.安全…

    2022年6月18日
    33

发表回复

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

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