CListBox用法总结
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用法总结相关推荐
- C++中WSAAsyncSelect模型的用法例程
本文实例讲述了C++中WSAAsyncSelect模型的用法.分享给大家供大家参考.具体实现方法如下: TCPServer.cpp源文件如下: 复制代码 代码如下: #include " ...
- socket UDP TCP 的一些用法
UDP 用最通俗的话讲,所谓UDP,就是发送出去就不管的一种网络协议.因此UDP编程的发送端只管发送就可以了,不用检查网络连接状态.下面用例子来说明怎样编写UDP,并会详细解释每个API和数据类型. ...
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
- Python中yield和yield from的用法
yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python yield 和 yield from用法总结
#例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...
- tf.nn.embedding_lookup()的用法
函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...
- OpenMP用法大全
OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...
最新文章
- 解决JQuery.Treeview在CI中无法加载查询函数的方法
- [编程题]字符串最后一个单词的长度
- MySQL查询数据字典_存储过程_函数_视图元数据_表元数据_触发器
- 徐中约与《中国近代史》 (zz)
- 加盟商最大的顾虑是什么?
- 如今在农村做生意,为啥越来越难了?
- mysql句式增删改,MySQL 增删改语句
- 疫情下的创业品牌如何逆风翻盘?
- 未找到“SocialiteProviders \ Manager \ ServiceProvider”类
- CSDN企业账户用户手册操作文档
- 药店管理系统/APP/小程序/网站
- 【无头浏览器】谷歌无头浏览器的几行代码简单设置?
- 《海洋湍流导论》-Thorpe-2007读书笔记-第一章
- 根据CTP接口计算现手、增仓、开平、对手盘 (1)
- java 计算正态分布_使用Java计算正态分布
- 当刷机工具遇到SetupConnection时的解决方法
- 云服务优缺点_云服务是什么,它有哪些优缺点?
- 手机连不上电脑WIFI并且一直提示正在获取IP地址
- JS封装数组API push,pop,shift,unshift,sort, reverse
- jsp80141汽车租赁租车车辆管理系统ssm+mysql
热门文章
- “BindingNavigator”如何在删除前弹出确认框?
- jQuery是什么,jQuery入门简介
- java类加public和不加public
- HttpClient和DefaultHttpClient
- git 远程仓库管理 分支创建、管理、查看、切换
- golang mysql 插入_Mysql学习(一)添加一个新的用户并用golang操作Mysql
- Series和DataFrame、相关性及NaN处理
- Hbase简介及常用命令相关知识总结
- 给未来的自己一封信计算机,给未来的自己的一封信范文(精选5篇)
- ssh 介绍 和使用 程序不挂起