CListBox 带有复选框

MFC列表框控件开发指南:变量关联、属性设置与消息处理 在Windows桌面应用开发中,控件是构建用户界面的基础元素,而数据绑定与消息响应机制是实现交互逻辑的核心原理。MFC(Microsoft Foundation Classes)作为经典的C++框架,通过DDX/DDV机制提供了类型安全的控件变量关联方式,极大提升了开发效率与代码可维护性。本文聚焦于MFC列表框控件的实战应用,详细解析如何为控件关联变量、设置核心属性,并处理用户交互消息。通过一个完整的城市选择器案例,演示从控件创建、数据初始化到增删查改的全流程实现,帮助开发者快速掌握MFC桌面应用开发中的控 阅读详情
由于实际需要在项目中需要使用一个带有复选框的列表控件,没错,VB、Delphi……里现成就有,但由于项目是VC工程,VC里现成的CListBox或CListCtrl都没有复选框。说到这里,高手们可能会说,简单,自已重绘一个,或者偷懒一点的方法,也可以去网上找一个别人做好现成的类来用。 
其实还有一个更轻松的方法,网上找到这样一段话: 
How   to   use   the   CCheckListBox   class   in   a   dialog   box        
     
Create   in   your   resource   file   an   ordinary   list   box   in   a   dialog   box.   Whichever   other   attributes   that   you   choose,   the   list   box   must   be   ownerdrawn   and   include   the   hasstrings   attribute.   Assume   that   in   this   case,   you   have   assigned   an   ID   of   IDC_CHECKLISTBOX   to   the   listbox   .    
     
Create   an   instance   of   a   CCheckListBox   object   in   the   header   file   of   your   dialog   box.    
     
          CCheckListBox   m_CheckListBox;    
Over-ride   OnInitDialog()   in   your   dialog   box   and   subclass   the   list   box   that   you   created   in   your   resource   file.   Set   the   style   of   the   check   box   as   you   wish.   See   the   documentation   provided   with   your   compiler.    
     
          m_CheckListBox.SubclassDlgItem(IDC_CHECKLISTBOX,   this);    [Page]
          m_CheckListBox.SetCheckStyle(BS_AUTOCHECKBOX);    
Since   CCheckListBox   is   derived   from   CListBox,   you   have   access   to   all   the   class   members   of   CListBox.   Add   strings   to   the   list   box   using   AddString()   as   follows.    
     
          m_CheckListBox.AddString(\"Test   String\");    
CCheckListBox   provides   several   class   members   that   allow   you   to   access   or   set   the   check   state   of   the   items   in   the   list   box.   For   example,   to   see   whether   the   first   item   in   the   list   box   is   checked   (the   index   of   the   first   item   would   be   zero),   use   GetCheck().    
     
          int   iIndex   =   0;    
          int   iState;    
          iState   =   m_CheckListBox.GetCheck(iIndex);   
方法很巧,移花接木。 
MFC有一个CCheckListBox类支持复选框风格,所以我们可以直接使用ListBox控件,然后初始化时把它子类化成CCheckListBox,再设置一下风格参数就行。但要注意一下,成功的关键是要修改ListBox控件的两处属性,分别是Owner draw设置为Fixed(LBS_OWNERDRAWFIXED),Has strings设置为True(LBS_HASSTRINGS),否则不成功,运行时报错。 
具体实现步骤举例如下—— 
1、首先在窗口上拖放一个ListBox控件,假设其资源ID为IDC_LIST1;


2、如上所述修改该ListBox控件的属性(LBS_OWNERDRAWFIXED | LBS_HASSTRINGS); 
3、定义CCheckListBox对象,在窗口类的头文件里; [Page]
// XXXDlg.h




CCheckListBox m_CheckList; 
4、然后在CPP文件里,初始化的地方写下两行; 
// XXXDlg.cpp


BOOL CXXXDlg::OnInitDialog() 
...{ 
    // ...


    m_CheckList.SubclassDlgItem(IDC_LIST1, this); // IDC_LIST1是ListBox控件的资源ID 
    m_CheckList.SetCheckStyle(BS_AUTOCHECKBOX);


    // ... 
} 
OK,就这么简单!m_CheckListBox.AddString(\"...\");加几条数据看看,是不是有复选框了! 
判断复选框是否被选中也很简单,m_CheckListBox.GetCheck(nIndex);就行!
使VC中CListBox带有复选框 使VC中CListBox带有复选框使VC中CListBox带有复选框 立即下载

相关推荐

delphi Listview复选框checkbox实现单选的功能

有源码有实例,delphi Listview复选框checkbox实现单选的功能,代码很精简实用,测试完美!

如果利用CListBox实现CCheckListBox?(译)

实现步骤如下: 1. 在对话框上添加一个CListBox控件,修改其属性:    Owner Draw = Fixed    Has Strings设置checked; 2. 利用class wizard添加一个变量: CListBox m_ctlCheckList;将其修改为: CCheckListBox m_ctlCheckList;

一心两用 1066

MFC CListBox及CTreeCtrl具有复选框功能

简单的使用 CListCtrl 与CTreeCtrl 使其具有复选框功能

CListBox添加复选框(Check):同时实现list行上移下移按钮,对话框记忆功能

   MFC中其实有一个CCheckListBox类支持复选框风格,所以可以直接使用CListBox控件,然后初始化时把它转化成CCheckListBox,再设置一下控件风格参数就行。但要注意一下,关键是要修改ListBox控件的两处属性设置,分别是“Owner draw”:设置为Fixed(LBS_OWNERDRAWFIXED),“Has strings”设置为True(LBS_HASSTRIN......

欧特GO 3613

YOLOv11+SAHI实战:5步搞定无人机航拍小目标检测(附VisDrone数据集调参技巧)

本文详细介绍了如何结合YOLOv11目标检测框架与SAHI切片推理技术,高效解决无人机航拍图像中的小目标检测难题。通过VisDrone数据集调参技巧和5步实战指南,帮助开发者快速构建高性能检测系统,显著提升小目标检测的准确率和效率。

rum55的博客 190

解决Unity与3DMax模型单位与中心点偏差的完整指南

本文详细解析了Unity与3DMax模型导入时常见的单位与中心点偏差问题,提供了从3DMax单位设置、FBX导出到Unity接收调整的完整解决方案。通过实战案例和高效工作流建议,帮助开发者实现unity与3dmax的单位统一,避免尺寸错误和轴心偏移,提升3D资源导入效率。

weixin_29015899的博客 286

VC中让CListBox带有复选框

项目中需要使用一个带有复选框的列表控件,没错,VB、Delphi……里现成就有,但由于项目是VC工程,VC里现成的CListBox或CListCtrl都没有复选框。说到这里,高手们可能会说,简单,自已重绘一个,或者偷懒一点的方法,也可以去网上找一个别人做好现成的类来用。 其实还有一个更轻松的方法,网上找到这样一段话: [How to use the CCheckListBox class in

Ψ星泪(JPEXE) 4038

MATLAB实战:64QAM通信系统仿真全流程解析(附误码率优化技巧)

本文提供了一份完整的64QAM通信系统MATLAB仿真实践指南。从系统架构设计、发射端格雷码映射与脉冲成形,到信道建模、接收端同步与均衡,详细解析了全链路实现流程。文章重点分享了误码率曲线与理论值偏差的排查清单和深度优化技巧,帮助工程师构建工业级精度的仿真模型,解决高阶调制系统仿真的核心难题。

jenkins8butler的博客 404

(转)VC中让CListBox带有复选框

(转)VC中让CListBox带有复选框 项目中需要使用一个带有复选框的列表控件,没错,VB、Delphi……里现成就有,但由于项目是VC工程,VC里现成的CListBox或CListCtrl都没有复选框。说到这里,高手们可能会说,简单,自已重绘一个,或者偷懒一点的方法,也可以去网上找一个别人做好现成的类来用。 其实还有一个更轻松的方法,网上找到这样一段话: [How to use t...

weixin_30726161的博客 117

FME入门系列教程3-带你玩转GIS数据搬运与处理

FME(Feature Manipulation Engine)就像GIS界的"瑞士军刀",它能轻松解决90%的数据处理难题。我最初接触FME是因为要处理200多个不同格式的CAD地形图,传统方法需要1周时间,用FME只花了2小时!:支持300+数据格式(Shapefile、GeoJSON、CAD、Excel等)添加Reader(数据源):选择示例数据roads.shp。添加Writer(输出):设置输出为GeoJSON格式。:将常用流程保存为Template(.fmwt)

weixin_41234946的博客 1243

极验验证码: 一点即过验证(鼠标轨迹分析)

2、第一个验证接口分析(第一个w值还原) 3、第二个验证接口(第二个w值还原)这里定位w生成跟上篇文章一样,就不展开了;主要分析tt值(鼠标轨迹)的生成逻辑

qq_49268524的博客 1009

VC CListBox中加复选框

一个带有复选框的列表控件,VB、Delphi……里有,VC工程,VC中的CListBox, CListCtrl没有复选框。自已重绘一个,或可以去网上找一个别人做好的现成的类。 MFC有一个CCheckListBox类支持复选框风格,可以直接使用ListBox控件,初始化时把它子

编程之路 4708

华为OD机试真题 C 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

【原】CListBox & CCheckListBox 使用技巧

                                【原】CListBox & CCheckListBox 使用技巧作者:lixiaosan时间:04/06/2006CListBox 和 CCheckListBox 简介CListBox用来输出一系列的文本,每条文本占一行。CCheckListBoxCCheckListBox是由CListBox派生,具有CListBox的所

7762

1、符号回归:原理、应用与实践

本文全面介绍了符号回归(Symbolic Regression)的原理、发展历程、核心算法及其在科学与工程领域的广泛应用。文章从基本概念出发,详细阐述了基于遗传编程的符号回归机制,并探讨了其在游艇水动力学、化学过程、锂离子电池、生物医学等多个领域的实际应用。同时,博文还涵盖了高级技术如知识集成、系数优化、预测区间计算及微分方程发现等内容,对比了开源与商业软件工具,并展望了未来发展趋势,旨在为研究人员和从业者提供一本实用的符号回归指南。

ipfs8storage的博客 248

【BUG已解决】pip install 出现 error: Microsoft Visual C++ 14.0 or greater is required 解决方案

方案磁盘占用适用场景推荐指数安装Build Tools3-6GB长期Windows Python开发⭐⭐⭐⭐⭐寻找预编译wheel无额外占用只是想快速装上某个包⭐⭐⭐⭐⭐用conda安装视包而定已经在用conda环境⭐⭐⭐⭐⭐升级到新版本无额外占用库本身有更新的预编译版本⭐⭐⭐⭐使用WSL2需要额外配置Linux子系统频繁遇到Windows编译问题⭐⭐⭐⭐的核心是Windows 缺少本地 C/C++ 编译器,而目标包需要在本机编译。先看是否有捷径。

博客 1万+

MFC List Box 复选框

MFC List Box 复选框

m0_62294345的博客 620

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

CCheckListBox的使用

CCheckList的使用1.简述2.常用Member functions1.ClistBox2. CChekListBox3.使用CCheckListBox1.创建CCheckListBox:2.删除CCheckListBox中的String 1.简述 CCheckListBox:显示一个带有复选框的项目列表,比如文件名,用户可以选中或清除该复选框。例如在Window系统(以Win10为例)中,随便打开一个文件夹(C:\Program Files (x86)),单击查看,点选项目复选框,如下图所示: 当

GODOOOO的博客 1847

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

4.5 List BoxCheck List Box

如果你指明了选择多行的风格,你就需要先调用int GetSelCount( )得到被选中的行的数量,然后int GetSelItems( int nMaxItems, LPINT rgIndex )得到所有选中的行,参数rgIndex为存放被选中行的数组。通过void SetCheck( int nIndex, int nCheck )/int GetCheck( int nIndex )可以设置和得到某行的检查状态,关于检查框状态可以参考4.1 Button中介绍。

qq_41237850的博客 523

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

线程文件[MFC]线程优先级设置,下拉列表框ComboBox,复选框CButton,列表框CListBox的使用...

发一下牢骚和主题无关: #include "CountThread.h" #include "DisplayThread.h" BEGIN_MESSAGE_MAP(CCountTestThreadMFCDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_CBN_SELCHANGE(IDC_CO...

weixin_30411819的博客 109

MFC学习笔记--按钮、列表框、对话框控件

按钮类CButton 按钮是一个矩形窗口,通常包含一个标题用来说明按钮的作用。CButton按钮控件类是从CWnd继承的。CObject-->CCmdTartget-->CWnd-->CButton. 按钮控件主要有命令按钮Button、单选按钮Radio Button 和复选框Check Box等。 命令按钮Button 用来响应用户的鼠标点击操作; 单选按钮Radio Button 由多个单选按钮组成一组,有选中和未选中两种状态,一组单选按钮...

S_BlueSky的博客 951

MFC控件编程实战:从按钮到列表视图的完整开发指南

在Windows桌面应用开发中,界面控件是构建用户交互的核心组件。MFC(Microsoft Foundation Classes)作为经典的C++框架,通过封装Windows标准控件和公共控件,提供了高效的开发方式。其核心原理基于消息映射机制和对话框数据交换(DDX),开发者可以通过静态创建或动态创建两种方式实例化控件,并通过控件通知实现交互逻辑。在工程实践中,合理运用CButton、CEdit、CListBox、CComboBox和CListCtrl等核心控件,结合UpdateData函数进行数据同步,

weixin_30897079的博客 447

0005-MFC--CCheckListBox控件的使用

在VS中,CCheckListBox控件无法选择,能选的只有CListBox控件,这个控件的选项前面没有checkbox,如何才能用CCheckListBox了,方法如下: 1. 新建对话框应用 2.给对话框加一个ListBox控件 3.修改ListBox的2个属性: Owner draw :Fixed, Has String:true 4. 给ListBox加一个变量 m_lis

唐伯虎的专栏 6920
上一篇: cannot find the definition (implementation) of this function 解决方法
下一篇: CString,BSTR,LPCTSTR 之间的关系【BSTR,_bstr_t, CComBSTR】
一秀
博客等级 码龄14年 1粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值