《实用VC编程之玩转控件》第7课:ListBox 列表控件
本文转载自 VC驿站:
https://www.cctry.com/thread-297429-1-1.html
1、向列表框控件添加数据:
a、向列表框的结尾添加数据:
m_ListBox.AddString(_T("1"));
m_ListBox.AddString(_T("2"));
m_ListBox.AddString(_T("10"));
m_ListBox.AddString(_T("20"));
跟下拉框控件一样,添加完成后,数据的顺序并不是我们添加时候的顺序,调整下控件的 Sort 自动排序属性就可以了。
b、自定义位置插入数据:
m_ListBox.InsertString(0, _T("1"));
m_ListBox.InsertString(1, _T("2"));
m_ListBox.InsertString(2, _T("10"));
m_ListBox.InsertString(1, _T("20"));
这种插入方式不受 Sort 属性的影响,但是需要提供插入的索引位置。
2、获得列表框中总共有多少条目:
int nCount = m_ListBox.GetCount();
3、从列表框删除数据:
m_ListBox.DeleteString(0); //删除指定索引的数据
m_ListBox.ResetContent(); //删除全部数据
4、设置列表框选中某条数据:
m_ListBox.SetCurSel(1);
参数传递要设置的索引序号,如果不想选中任何一条,那么就传递 -1.
5、获得列表框当前选中的是哪条数据:
int idx =m_ListBox.GetCurSel();
返回以0开始的选中的数据索引,如果没选中任何一条数据,则返回 -1.
6、列表框的多选模式:
刚才给大家讲解的 SetCurSel 和 GetCurSel 都是针对列表框的单选模式进行的,大家在使用其他软件的时候也注意过有的列表框控件是支持多选的,还支持 Ctrl、Shift 键快捷操作,那么应该怎么做呢?
答案是:控件的 Selection 属性进行修改。默认是 Single,也就是单选。我们可以改成 Multiple、Extended,都是多选的意思。其中 Extended 支持 Ctrl、Shift 键操作。None:选中item,但是不高亮,只显示该item上交点(item外有矩形框)。
a、多选模式下的选中操作:
m_ListBox.SetSel(0);
m_ListBox.SetSel(1);
b、多选模式下的获取选中操作:
int sel_count = m_ListBox.GetSelCount();
int* pSel = new int[sel_count];
m_ListBox.GetSelItems(sel_count, pSel);
for (int idx = 0; idx < sel_count; ++idx)
{
int sel_idx = pSel[idx];
//其他操作
}
delete[] pSel;
7、获得指定索引的字符串内容:
a、MFC的CString方式:
CString strText;
m_ListBox.GetText(sel_idx, strText);
b、非CString方式:
int text_len = m_ListBox.GetTextLen(sel_idx);
TCHAR* pszText = new TCHAR[text_len + 1];
memset(pszText, 0, sizeof(TCHAR)*text_len);
m_ListBox.GetText(sel_idx, pszText);
delete[] pszText;
8、开源控件类:
https://www.codeproject.com/Arti ... Box-derived-control
https://www.codeproject.com/Arti ... -List-based-Listbox
https://www.codeproject.com/Articles/12773/CFontListBox
https://www.codeproject.com/Arti ... -CListBox-Version-2
https://www.codeproject.com/Arti ... -Multi-line-ListBox
https://www.codeproject.com/Arti ... xColorPickerST-v1-1
https://www.codeproject.com/Arti ... dio-Buttons-MFC-ver
https://www.codeproject.com/Arti ... le-ListBox-Tutorial
https://www.codeproject.com/Arti ... ting-check-state-no
https://www.codeproject.com/Arti ... ith-ToolTip-Support
https://www.codeproject.com/Arti ... ith-selectable-text
https://www.codeproject.com/Articles/11359/Transparent-ListBox
https://www.codeproject.com/Arti ... t-Ownerdraw-Listbox
具体操作细节见视频教程的演示和讲解!
第7课免费试看,下载地址:
https://www.cctry.com/thread-297429-1-1.html
《实用VC编程之玩转控件》第7课:ListBox 列表控件相关推荐
- 《实用VC编程之玩转控件》第1课:Windows编程简介
本文转载自: VC驿站 https://www.cctry.com/thread-297374-1-1.html 0.开发环境: 操作系统:Microsoft Windows 7 Ultimate S ...
- 《实用VC编程之玩转控件》第15课:Tree树形控件
本文转载自:VC驿站 https://www.cctry.com/thread-297465-1-1.html 1.控件简介: Tree树形控件也是我们编程过程中比较常用的一个控件,而且在其他软件中也 ...
- 《实用VC编程之玩转控件》第3课:Button按钮控件
本文转载自:VC驿站 https://www.cctry.com/thread-297405-1-1.html 1.按钮控件的基本使用: 新建对话框工程,拖拽按钮控件,添加点击事件响应函数! a.双击 ...
- 《实用VC编程之玩转控件》第6课:ComboBox下拉框控件
本文转载自:VC驿站 https://www.cctry.com/thread-297426-1-1.html 1.向下拉框控件添加数据: a.通过Data属性添加,以分号间隔: b.向下拉框的结尾添 ...
- [翻译]Chameleon介绍(3) : 列表控件
[原文]http://getben.com/archive/2007/01/11/introduction-to-chameleon-list-base-controls.aspx 这篇文章属于我的文 ...
- MFC之列表控件ListCtrl
MFC列表控件ListCtrl如图: 列表控件ListCtrl样式属性(风格)有: Icon大图标,SmallIcon小图标.List列表.Report报告 ,但今天只谈Report报告样式: 一:基 ...
- VC++ 列表控件的使用方法
列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值. MFC中使用CListCtrl类来封装列表控件的各种操作. 通过调用BOOL Create( DWOR ...
- MFC 列表控件CListCtrl加载类似QQ界面的头像与文字
本文主要讲述使用VS2012 MFC的CListCtrl(列表)控件加载类似于QQ界面的图片与文字数据.主要通过CListCtrl::InsertColumn.InsertItem.SetItemTe ...
- VC编程规范(转自http://www.zhongguoidc.com/htm_data/69/0608/28000.html)
VC编程规范-程序员应该这样写代码 王者归来VC编程规范-程序员应该这样写代码 基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行. 1.2 打算干什么,要简单,直接了当,代 ...
最新文章
- 有人问你如何掌握隐含狄利克雷分布(LDA),把这篇文章甩给他
- Docker : Dockerfile 定制镜像
- c语言代码测试电脑性能,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
- origin坐标轴在隐藏后如何显示
- 云图说|ASM灰度发布,让服务发布变得更敏捷、更安全
- uc for linux,在uClinux文件系统中增加应用程序
- 摆脱臃肿--Unity3D安卓包减肥秘笈
- 今天拿到一个TFS Workgroup Edition,想从B3R升级,结果开始了一天的艰难之路。。...
- CRM客户管理系统的功能模块有哪些
- Linux文件夹的介绍
- Python京东抢购
- kafka自带的zk启动_kafka单机安装和启动
- python3跑通smpl模型_Python smpl-pytorch包_程序模块 - PyPI - Python中文网
- c语言循环次数计算多重循环,C语言 第六章 多重循环练习
- 论文笔记之Estimator Varience in RL
- 全红婵水花消失术是怎样炼成的,郭晶晶都羡慕她怎么跳得那么好
- 小黄人代码(Python)
- python爬虫之墨迹天气
- 【数字信号处理及MATLAB实践】
- 新歌 wuha之《武汉》