CListBox用法总结
用法
属性Style
Selection
Single — 单选
Multiple — 多选(LBS_MULTIPLESEL)
None — 不可选(LBS_NOSEL)
Sort
对应Style: LBS_SORT

Insert Item
int AddString(LPCTSTR lpszItem);
int InsertString(int nIndex,
LPCTSTR lpszItem);

Delete Item
int DeleteString(UINT nIndex);
//清空
void ResetContent();

Selection
int GetCurSel( ) const;
int SetCurSel(int nSelect);
int GetSelCount( ) const;
int GetSelItems(int nMaxItems,
LPINT rgIndex) const;
代码示例:获取选中项并输出
假设CListBox控件变量名为m_lbTest
// 1.Selection = Single-----------------------------------
int nSelIndex = m_lbTest.GetCurSel();
if (nSelIndex == LB_ERR) //no item is currently selected
{
AfxMessageBox(TEXT(“no item is currently selected”));
}
else
{
CString cstr;
m_lbTest.GetText(nSelIndex, cstr);
AfxMessageBox(cstr);
}

// 2.Selection = Multiple----------------------------------
int nSelCnt = m_lbTest.GetSelCount();
if (nSelCnt == LB_ERR) //the list box is a single-selection list box
{
AfxMessageBox(TEXT(“the list box is a single-selection list box”));
return;
}
if (nSelCnt == 0) //no item is currently selected
{
AfxMessageBox(TEXT(“no item is currently selected”));
return;
}
int* pnSelIndex = new int[nSelCnt];
m_lbTest.GetSelItems(nSelCnt, pnSelIndex);
for (int i=0; i<nSelCnt; ++i)
{
CString cstr;
m_lbTest.GetText(pnSelIndex[i], cstr);
AfxMessageBox(cstr);
}
delete[] pnSelIndex;

Other
// 获取Text
void GetText(int nIndex,
CString& rString) const;
// Get/Set item associated data
DWORD_PTR GetItemData(int nIndex) const;
int SetItemData(int nIndex,
DWORD_PTR dwItemData);
注意:
1.GetItemData在没有通过SetItemData设置每一项的关联数据时返回NULL.
2.对应的GetItemDataPtr,SetItemDataPtr其实和GetItemData,SetItemData本质上是一模一样的
我们可以看下源码
int CListBox::SetItemDataPtr(int nIndex, void* pData)
{ return SetItemData(nIndex, (DWORD_PTR)(LPVOID)pData); }
看来增加这两个函数只是使意义更明确些,有点不懂微软了。

动态创建CListBox控件
黑色非标准3D边框:
CListBox *pMyListBox = new CListBox();
pMyListBox->Create(
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | LBS_NOTIFY | LBS_MULTIPLESEL,
CRect(10, 10, 100, 100),
this,
1234);
pMyListBox->SetFont(this->GetFont());

pMyListBox->AddString(TEXT(“123”));
pMyListBox->AddString(TEXT(“456”));
pMyListBox->AddString(TEXT(“789”));

标准3D边框:
CListBox *pMyListBox = new CListBox();
pMyListBox->CreateEx(
WS_EX_CLIENTEDGE,
TEXT(“LISTBOX”),
TEXT(""),
WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | LBS_NOTIFY | LBS_MULTIPLESEL,
10, 10, 100, 100,
this->GetSafeHwnd(),
(HMENU)1234);
pMyListBox->SetFont(this->GetFont());

pMyListBox->AddString(TEXT(“123”));
pMyListBox->AddString(TEXT(“456”));
pMyListBox->AddString(TEXT(“789”));

CListBox用法总结相关推荐

  1. C++中WSAAsyncSelect模型的用法例程

     本文实例讲述了C++中WSAAsyncSelect模型的用法.分享给大家供大家参考.具体实现方法如下: TCPServer.cpp源文件如下: 复制代码 代码如下: #include " ...

  2. socket UDP TCP 的一些用法

    UDP 用最通俗的话讲,所谓UDP,就是发送出去就不管的一种网络协议.因此UDP编程的发送端只管发送就可以了,不用检查网络连接状态.下面用例子来说明怎样编写UDP,并会详细解释每个API和数据类型. ...

  3. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  4. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  5. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  6. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  7. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  8. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

  9. OpenMP用法大全

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

最新文章

  1. 解决JQuery.Treeview在CI中无法加载查询函数的方法
  2. [编程题]字符串最后一个单词的长度
  3. MySQL查询数据字典_存储过程_函数_视图元数据_表元数据_触发器
  4. 徐中约与《中国近代史》 (zz)
  5. 加盟商最大的顾虑是什么?
  6. 如今在农村做生意,为啥越来越难了?
  7. mysql句式增删改,MySQL 增删改语句
  8. 疫情下的创业品牌如何逆风翻盘?
  9. 未找到“SocialiteProviders \ Manager \ ServiceProvider”类
  10. CSDN企业账户用户手册操作文档
  11. 药店管理系统/APP/小程序/网站
  12. 【无头浏览器】谷歌无头浏览器的几行代码简单设置?
  13. 《海洋湍流导论》-Thorpe-2007读书笔记-第一章
  14. 根据CTP接口计算现手、增仓、开平、对手盘 (1)
  15. java 计算正态分布_使用Java计算正态分布
  16. 当刷机工具遇到SetupConnection时的解决方法
  17. 云服务优缺点_云服务是什么,它有哪些优缺点?
  18. 手机连不上电脑WIFI并且一直提示正在获取IP地址
  19. JS封装数组API push,pop,shift,unshift,sort, reverse
  20. jsp80141汽车租赁租车车辆管理系统ssm+mysql

热门文章

  1. “BindingNavigator”如何在删除前弹出确认框?
  2. jQuery是什么,jQuery入门简介
  3. java类加public和不加public
  4. HttpClient和DefaultHttpClient
  5. git 远程仓库管理 分支创建、管理、查看、切换
  6. golang mysql 插入_Mysql学习(一)添加一个新的用户并用golang操作Mysql
  7. Series和DataFrame、相关性及NaN处理
  8. Hbase简介及常用命令相关知识总结
  9. 给未来的自己一封信计算机,给未来的自己的一封信范文(精选5篇)
  10. ssh 介绍 和使用 程序不挂起