【VC编程技巧】控件☞4.4ListBox控件(打造带有复选框的ListBox)
来源:互联网 发布:wifi渗透软件 编辑:程序博客网 时间:2024/05/17 03:18
4.4ListBox控件(打造带有复选框的ListBox)
下面通过两种方式构建复选框ListBox
1.对话框中插入ListBox控件(IDC_LIST1,IDC_LIST2),如下设置属性
图1
- 方式一:
2.对ListBox控件(IDC_LIST1)关联控件变量m_checkListBox1,将控件变量类型CListBox -> CCheckListBox(需要手动完成)。
//修改控件变量类型:CListBox -> CCheckListBoxCCheckListBox m_checkListBox1;
- 方式二:
2.从MFC类CCheckListBox中继承出类CCheckListBoxEx,定义其对象m_checkListBox2;通过m_checkListBox2.SubclassDlgItem(IDC_LIST2, this);子类化ListBox控件(IDC_LIST2)
ListBox控件父窗口头文件中
//定义自定义类CCheckListBoxEx的类对象CCheckListBoxEx m_checkListBox2;
初始化函数OnInitDialog中
// TODO: 在此添加额外的初始化代码m_checkListBox2.SubclassDlgItem(IDC_LIST2, this);
3.以上带有复选框的ListBox就完成了;但是此时ListBox控件中复选框和项目结合不紧密。
选中复选框 == 选中了复选框所在的项目
选中项目 !== 选中了项目复选框
现对于ListBox控件(IDC_LIST2)做了进一步优化;使得可以
选中复选框 == 选中了复选框所在的项目
选中项目 == 选中了项目复选框
优化源码:
消息映射
ON_LBN_SELCHANGE( IDC_LIST2, OnSelectItemChance )
消息函数申明
afx_msg void OnSelectItemChance();
消息函数定义
//当Item发生改变时系统调用此函数void CCheckListBoxDlg::OnSelectItemChance(){//ListBox中当前Item的索引取得int nCurIndex = m_checkListBox2.GetCurSel();//当前Item中复选框状态取得(选中,未选中)int nRet = m_checkListBox2.GetCheck(nCurIndex);if (nRet == BST_CHECKED){//选中时,状态改为非选中m_checkListBox2.SetCheck(nCurIndex, 0);}else{//未选中时,状态改为选中m_checkListBox2.SetCheck(nCurIndex, 1);}}
4.效果图:
图2
P.S文章源码下载
0 0
- 【VC编程技巧】控件☞4.4ListBox控件(打造带有复选框的ListBox)
- vc 编程ListBox控件
- VC++------------ListBox控件的使用
- VC++----ListBox控件的使用
- (转载)mfc listbox 控件-ListBox控件的使用
- (转载)mfc listbox 控件-ListBox控件的使用
- 鸡啄米vc++2010系列23(列表框控件ListBox)
- ListBox控件的使用
- ListBox控件的使用
- 控件listbox的使用
- 列表框控件(listbox)
- 列表框控件ListBox
- 列表框控件ListBox
- ListBox控件
- ListBox控件
- ListBox控件
- ListBox控件
- ListBox控件
- hdoj 1237 简单计算器(栈)
- 自定义对话框之动画效果
- linux下etc/fstab文件中参数详解
- linux文件目录
- iOS8中的[UIScreen mainScreen].bounds 和 [UIScreen mainScreen].applicationFrame(下)
- 【VC编程技巧】控件☞4.4ListBox控件(打造带有复选框的ListBox)
- 单片机_定时器/计数器
- Web应用中的离线数据存储
- windows 如何手动添加服务
- android系统自带对话框的用法
- Spring中使用hibernate
- 用GDB调试程序
- 关于在navigationItem.titleView上添加button不显示问题
- UI设计细节