本文转载自 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 列表控件相关推荐

  1. 《实用VC编程之玩转控件》第1课:Windows编程简介

    本文转载自: VC驿站 https://www.cctry.com/thread-297374-1-1.html 0.开发环境: 操作系统:Microsoft Windows 7 Ultimate S ...

  2. 《实用VC编程之玩转控件》第15课:Tree树形控件

    本文转载自:VC驿站 https://www.cctry.com/thread-297465-1-1.html 1.控件简介: Tree树形控件也是我们编程过程中比较常用的一个控件,而且在其他软件中也 ...

  3. 《实用VC编程之玩转控件》第3课:Button按钮控件

    本文转载自:VC驿站 https://www.cctry.com/thread-297405-1-1.html 1.按钮控件的基本使用: 新建对话框工程,拖拽按钮控件,添加点击事件响应函数! a.双击 ...

  4. 《实用VC编程之玩转控件》第6课:ComboBox下拉框控件

    本文转载自:VC驿站 https://www.cctry.com/thread-297426-1-1.html 1.向下拉框控件添加数据: a.通过Data属性添加,以分号间隔: b.向下拉框的结尾添 ...

  5. [翻译]Chameleon介绍(3) : 列表控件

    [原文]http://getben.com/archive/2007/01/11/introduction-to-chameleon-list-base-controls.aspx 这篇文章属于我的文 ...

  6. MFC之列表控件ListCtrl

    MFC列表控件ListCtrl如图: 列表控件ListCtrl样式属性(风格)有: Icon大图标,SmallIcon小图标.List列表.Report报告 ,但今天只谈Report报告样式: 一:基 ...

  7. VC++ 列表控件的使用方法

    列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值. MFC中使用CListCtrl类来封装列表控件的各种操作. 通过调用BOOL Create( DWOR ...

  8. MFC 列表控件CListCtrl加载类似QQ界面的头像与文字

    本文主要讲述使用VS2012 MFC的CListCtrl(列表)控件加载类似于QQ界面的图片与文字数据.主要通过CListCtrl::InsertColumn.InsertItem.SetItemTe ...

  9. VC编程规范(转自http://www.zhongguoidc.com/htm_data/69/0608/28000.html)

    VC编程规范-程序员应该这样写代码 王者归来VC编程规范-程序员应该这样写代码 基本要求 1.1 程序结构清析,简单易懂,单个函数的程序行数不得超过100行. 1.2 打算干什么,要简单,直接了当,代 ...

最新文章

  1. 有人问你如何掌握隐含狄利克雷分布(LDA),把这篇文章甩给他
  2. Docker : Dockerfile 定制镜像
  3. c语言代码测试电脑性能,【图片】今天写几个性能测试,为什么C语言跑得这么慢呢??【c语言吧】_百度贴吧...
  4. origin坐标轴在隐藏后如何显示
  5. 云图说|ASM灰度发布,让服务发布变得更敏捷、更安全
  6. uc for linux,在uClinux文件系统中增加应用程序
  7. 摆脱臃肿--Unity3D安卓包减肥秘笈
  8. 今天拿到一个TFS Workgroup Edition,想从B3R升级,结果开始了一天的艰难之路。。...
  9. CRM客户管理系统的功能模块有哪些
  10. Linux文件夹的介绍
  11. Python京东抢购
  12. kafka自带的zk启动_kafka单机安装和启动
  13. python3跑通smpl模型_Python smpl-pytorch包_程序模块 - PyPI - Python中文网
  14. c语言循环次数计算多重循环,C语言 第六章 多重循环练习
  15. 论文笔记之Estimator Varience in RL
  16. 全红婵水花消失术是怎样炼成的,郭晶晶都羡慕她怎么跳得那么好
  17. 小黄人代码(Python)
  18. python爬虫之墨迹天气
  19. 【数字信号处理及MATLAB实践】
  20. 新歌 wuha之《武汉》

热门文章

  1. 通过Python实现NC文件转GeoTiff格式
  2. 校招产品经理面经篇四
  3. 笔记本插入麦克风被识别成耳机怎么办
  4. 2012-03-01
  5. java实现下载网络图片到本地
  6. 一个程序员的连续套现
  7. HTML5 权威指南第 10 章 文档分节 学习笔记
  8. linux查看设备和硬盘序列号 ip mac地址
  9. linux 格式化 sda,linux – 如何将/ dev / sda挂载并格式化为不同的/ dev / name?
  10. 人人权限系统本地部署