MFC入门学习之控件(6)标签控件List Control的添加和使用(下)

CListCtrl控件的标题栏添加checkbox CListCtrl控件的标题栏添加checkbox CListCtrl控件添加checkbox很容易,直接设置CListCtrl的风格就可以了。但是在标题栏也添加checkbox,实现全选和全不选,貌似都只能采取自绘的形式。具体步骤介绍如下。    1设置CListCtrl风格 至于怎么添加CListCtrl我这里就不介绍了,网上很资料很多,我只介绍使用checkbox这部分。首先设置CL 阅读详情

        前面对listctrl进行了理论描述,但是在实际的工程中,我们一定是希望能够通过listctrl的各种状态来进行代码的编写从而完成一定的任务。那么首先来看一下listctrl中item的选择。

功能1 得到listctrl中所有行的checkbox的状态



      m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);
      CString str;
      for(int i=0; i<m_list.GetItemCount(); i++)
      {

          // if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i))

           if(  m_list.GetCheck(i))

           {
                str.Format(_T("第%d行的checkbox为选中状态"), i);
                AfxMessageBox(str);
           }
      }
功能2 得到listctrl中所有选中行的序号

      方法一:
      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);
                TRACE1("Item %d was selected!\n", nItem);
                // you could do your own processing on nItem here
           }
      }

        两者的区别是什么呢?区别就在于在实际的应用中查看你的鼠标点击了那一行,和checkbox是否选中的状态上。具体来讲,如果你要通过自己的选择来完成某些特殊的任务,例如选择了某几个文件进行文件的打包和烧写工作,那么就需要的是看checkbox是否选中来决定而不是看选中了哪一行。另外一种场景,比如你想添加对某一行的内容的注解,那么就选择功能2

MFClistctrl控件嵌入Button或Combox CRect rcCellRect; CString csCellData = ""; NM_LISTVIEW * pNMListView = (NM_LISTVIEW*)pNMHDR; m_pointIndexOfCell.x = pNMListView->iItem; m_pointIndexOfCell.y = pNMListView->iSubItem; //保存指定单元格的索引 int iRow = pNMListView->iItem; ... 阅读详情

相关推荐

MFC应用程序(控件集合)——标签控件_IP控件_时间控件_List Control控件_Tree Control控件_命令按钮_列表框_组合框_图片_滚动控件

标签控件应用 【Tab Control 标签控件】 标签控件也比较常见。它可以把多个页面集成到一个窗口中, 每个页面对应一个标签,用户点击某个标签时,它对应的页 面就会显示。 使用标签控件我们可以同时加载多个有关联的页面,用 户只需点击标签即可实现页面切换,方便灵活的进行操作。 每个标签除了可以显示标签文本,还可以显示图标。 标签控件相当于是一个页面的容器,可以容纳多个对话 框,而且一般也只容纳对...

流楚丶格念的博客 4984

CListCtrl使用技巧(1)

以下未经说明,listctrl默认view 风格为report 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:window...

weixin_30760895的博客 325

VC++对话框控件开发实战:从DDX机制到性能优化

在桌面应用开发领域,消息循环与控件交互是GUI编程的核心基础。其原理基于Windows消息驱动架构,通过消息映射机制将用户操作转化为程序事件。这一技术价值在于提供了对系统资源的直接控制能力,尤其适用于对性能、稳定性和硬件交互有严苛要求的工业控制、金融交易等专业场景。通过数据交换(DDX/DDV)机制,开发者能高效实现界面与数据的同步,而列表控件、树控件等复杂组件的优化使用则能有效管理结构化数据。本文以VC++对话框开发为例,深入剖析了DDX数据交换机制与列表控件性能优化等关键实践,为构建高响应、低延迟的桌面

weixin_30621959的博客 350

MFC的listctrl中嵌入Button

这个项目中需要用MFC实现一个界面功能:listctrl中水平添加按钮。       MFC本身的listctrl控件只能显示简单的文本,简单的添加按钮也不是一两句代码能解决的问题,从这方面讲,MFC开发界面真是不得已而为之。           因为需要的按钮数目是不确定的,所以只能是动态创建,然后再根据listctrl控件的位置计算出按钮应该放置的位置,然后将按钮移动到指定坐标。   

jiangqin115的专栏 1万+

VC++ 6.0与Access数据库图书管理系统实战开发指南

数据库编程是软件开发的核心基础,它涉及数据的存储、组织、访问和管理。其基本原理是通过结构化查询语言(SQL)对数据库进行增删改查(CRUD)操作,实现数据的持久化。在桌面应用开发中,数据库技术是实现业务逻辑和数据管理的基石,其价值在于将用户界面操作与后端数据存储无缝衔接,构建出功能完整的应用程序。典型的应用场景包括各类信息管理系统,如图书管理、库存管理等。本文以经典的图书管理系统为例,深入剖析如何使用VC++ 6.0的MFC框架与Access数据库进行实战开发。文章将详细拆解从环境搭建、数据库设计、ADO连

weixin_30527323的博客 391

MFC在ListCtrl中加入Button

MFC在ListCtrl中加入Button,一个不错的功能。

MFC入门学习之控件(4)标签控件List Control的添加和使用(上)

在MFC中,提供了List Control类,   首先设置如下参数: 显然如果想满足特殊的需求,必须定制适合我们需求的List Control, 此处假设我们需要在list中浏览计算机上文件,那么我们可能需要一个button,当点击button时触发浏览文件的操作。这样的操作在List Control中并不存在,那么现在开始在List Control中添加一个按键,那么需要But

曹太强的专栏 1万+

【BLE系列-第六篇】GATT解析:属性、特征、描述符的逻辑关系

本文系统介绍了BLE协议中的ATT和GATT机制。ATT以"属性"为基本数据单元,包含UUID、Handle、权限和Value四个要素。GATT则在ATT基础上构建了服务、特征和描述符的层次结构:服务(UUID:0x2800/0x2801)通过声明属性标识,特征声明(UUID:0x2803)指向特征值(UUID:0x2Axx或自定义),描述符(UUID:0x2900~0x290F)提供附加信息。GATT复用ATT发现机制,通过定义特定UUID语义实现服务发现和特征管理。这种设计使BLE设

qq_43399763的博客 1929

C++ MFC combo box和list control控件的使用

Combo Box用法:   combo box控件由两部分组成:编辑框和选择框(列表框)组成,对应的类是CComboBox 1、改变下拉框大小:先点向下的箭头,就可以调整下拉框大小 2、如果 ComboBox 的 Sorted 属性设置为 true,    则新添加项将按字母顺序插入到列表中。    否则,在列表的结尾处插入项。 3、要立即响应选择框的改变(即选择框一改

心中有道的专栏 1398

正版63棋牌源代码游戏+728游戏全套带前端源代码解析

这俩天抽时间仔细看了一下这套项目包含完整的前端、后端及后台管理系统。从上传的截图可以看出,前端基于资源目录,后端采用和,后台管理界面提供数据查询与管理功能。本篇文章将从前端结构、后端接口、数据库设计、常见 BUG 及优化方法等方面逐步拆解,并给出相应的代码示例和实践经验。

aa2031171的博客 3576

强化学习实战:如何用PPO算法训练一个超级马里奥AI(附完整代码)

本文提供了一份详细的强化学习实战指南,教你如何使用PPO算法训练一个能玩《超级马里奥》的AI智能体。内容涵盖从环境搭建、自定义奖励函数设计到PPO智能体的PyTorch完整实现,并附有可运行的代码,帮助开发者快速上手游戏AI开发。

h6j7k8l9p0的博客 947

MFC入门学习之控件(5)标签控件List Control的添加和使用(中)

按照上面的方法进行创建之后,发现存在两个问题: 1 button的getstate()得到的值是520,而不是理论值0x0008 2 当list文件位置超过一屏时,出现iIndex出错的情况 现在将解决思路呈上。 解决问题1的方法是读取这个值, 主要介绍问题2的解决,主要通过两部分,一步是解决了按键读取失败的问题,另一部是进行了一些美化处理工作。 第一步: //aboveall ca

曹太强的专栏 2760

风光储互补微电网在偏远地区的应用实践:从建模到仿真全解析

本文深入解析了风光储互补微电网在偏远地区的应用实践,从系统设计到仿真建模全流程。通过Simulink等工具进行动态仿真,验证了系统在多种工况下的可靠性,并结合实际案例展示了其显著的经济和环保效益。文章为从业者提供了从技术路径到实施优化的全面指导。

weixin_29047545的博客 270

C++ MFC combo box和list control控件的使用

Combo Box用法:combo box控件由两部分组成:编辑框和选择框(列表框)组成,对应的类是CComboBox 1、改变下拉框大小:先点向下的箭头,就可以调整下拉框大小 2、如果 ComboBox 的 Sorted 属性设置为 true, 则新添加项将按字母顺序插入到列表中。 否则,在列表的结尾处插入项。 3、要立即响应选择框的改变(即选择框一改变选项,就立刻将结果传递进去...

weixin_30263277的博客 467

FFmpeg入门详解之110:RTSP协议讲解

TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。正在上传…重新上传取消RTSP是基于文本的协议,采用ISO10646字符集,使用UTF-8编码方案。行以CRLF中断(\r\n:10,13:0x0A,0x0D),包括消息类型、消息头、消息体和消息长。

福优学苑@音视频+流媒体 2529

MFC_CImageList control

Using CImageList Visual Studio 2015 Other Versions   For the latest documentation on Visual Studio 2017, see Visual Studio 2017 Documentation. An image list, represe

Coder_LCB的博客 573

【Visual Assist X助手安装问题】Visual Assist X无法安装(双击安装包没反应) | Visual Assist X安装后在Visual Studio中找不到(亲测有效)

本文分享了Visual Assisant X助手的安装与使用问题的详细解决办法,因为网上搜集的信息比较少,所以有一定的参考价值。考虑到很多开发新手会遇到上述问题,可能对Windows系统不熟悉,所以相关操作步骤讲解的很详细!

dvlinker的技术专栏 6万+

MFC之ListCtrl动态添加按钮

先上效果图: 图中用了一个CListCtrl插件,隐藏了网格线(LVS_EX_GRIDLINES)。 添加了“删除”按钮(按钮上贴了图片),选中哪一行则显示在哪一行。 有两种方式创建按钮,一种是直接根据行数(比如n行)创建n按钮,然后根据自己需求全部显示,或是动态显示,只显示所选中的那一行按钮; 另一种是每次只创建选中行的一个按钮,并且销毁上一次创建的按钮(第一次除外)。 本实例...

weixin_30905981的博客 2989

python实现Markowitz模型 (附完整源码)

python实现Markowitz模型 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 405

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于MFC中下list control中创建复选框,修改样式等的操作方法

需要注意的是,如果想在list control里面加入各种奇怪的项的话,list control控件的属性中view属性一定要修改。首先创建list control,很多文章能搜到。设置方面很多其他大神的文章都能参考,就不在总结了。然后是创建复选框,参考一下链接。

qth_0000的博客 1135

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

MFC--对话框模式下实现ListControl控件中动态创建ComboBox

mfc ListControl+动态创建下拉框, 附 资源!!!

weixin_42237615的博客 1920

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MFC-CListCtrl重绘,添加按钮到单元格

MFC Listctrl 不支持单元格颜色设置,以及单击其中某一单元格时高亮显示,要想达成自己的目的,就只能对其重绘。 关于单元格中按钮的添加,说一下思路,首先要重写CButton类,将其单击事件接口进行重写,这里就是发送自定义消息,到主窗口界面进行响应,然后在要生添加按钮的单元格中生成新的按钮,加入链表中进行存放,同时记录对应的单元格的行列信息,然后在单元格进行重绘时,改变button 位置即...

若歌的博客 4496
上一篇: MFC入门学习之控件(5)标签控件List Control的添加和使用(中)
下一篇: 如何屏蔽LOGD\LOGI等打印输出
野-百-合
博客等级 码龄17年 308粉丝 118原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值