Win32中的listbox学习

列表框样式:
Visual Studio 2013 其他版本
当列表框不包含足够的项滚动时,LBS_DISABLENOSCROLL 列表框显示一个禁用的垂直滚动条。 若无此样式,当列表框不包含足够的项时,滚动条将隐藏。

使用 Shift 键和鼠标或特定组合键LBS_EXTENDEDSEL,用户可以选择多个项。

LBS_HASSTRINGS 指定包含字符串的项所有者描述列表框。 列表框保留内存和字符串的指针,该应用程序可使用 GetText 成员函数检索文本特定项的。

LBS_MULTICOLUMN 指定水平滚动的多列列表框。 SetColumnWidth 成员函数将列的宽度。

每次用户单击或双击字符串,选择LBS_MULTIPLESEL 字符串之间切换。 任意数量的字符串进行选择。

LBS_NODATA 指定无数据列表框。 当计数,列表中将多项一次,指定此样式。 无数据列表框还必须具有 LBS_OWNERDRAWFIXED ,样式,但无法具有 LBS_SORTLBS_HASSTRINGS 样式。

由数据类似于列表框的所有者描述列表框,但不包含字符串或位图数据的项。 命令添加,插入或删除项始终忽略任何指定项数据;请求始终失败查找在列表框内的字符串。 当必须绘制时,系统发送 WM_DRAWITEM 消息。项所有者窗口。 DRAWITEMSTRUCT 结构的 itemID 成员将用 WM_DRAWITEM 消息指定要绘制项的行号。 无数据列表框不发送 WM_DELETEITEM 消息。

在创建列表框,LBS_NOINTEGRALHEIGHT 列表框的尺寸正确应用程序指定的范围。 通常,窗口大小列表框,使列表框部分不显示项。

当更改时,LBS_NOREDRAW 列表框显示未更新。 此样式可通过发送 WM_SETREDRAW 消息随时更改。

LBS_NOSEL 指定列表框包含中查看,但不会选择的项。

LBS_NOTIFY 父窗口接收输入消息,每当用户单击或双击字符串。

LBS_OWNERDRAWFIXED 列表框的所有者负责绘制其内容运行;在列表框项的是同一高度。

LBS_OWNERDRAWVARIABLE 列表框的所有者负责绘制其内容运行;在列表框项的高度是可变的。

在列表框的LBS_SORT字符串按字母顺序排序。

在列表框的LBS_STANDARD 字符串按字母顺序排序,并且,父窗口接收输入消息,每当用户单击或双击字符串。 列表框中包含在任何范围。

当绘制制表符字符串时,使能识别并展开制表符。LBS_USETABSTOPS 列表框 默认选项卡位置 32 是对话框单位。对话框单位 (A 是一个水平或垂直距离。 水平的对话框单位相等到当前基本宽度对话框单位的四分之一。 对话框单位计算基于当前基础系统字体的高度和宽度。 GetDialogBaseUnits Windows 函数返回在像素的当前基本单元对话框。)不应使用此样式与 LBS_OWNERDRAWFIXED

LBS_WANTKEYBOARDINPUT 列表框的所有者接收 WM_VKEYTOITEM 或 WM_CHARTOITEM 消息,只要用户按键,当列表框具有输入焦点时。 这允许您的应用程序处理在执行特定类型。

–以上为摘抄MSDN的笔记,
1.在我的使用中遇到的问题也拿出来分享一下,主要是LBS_OWNERDRAWFIXED这个参数,解释是“列表框的所有者负责绘制其内容运行;在列表框项的是同一高度。”,没理解到他说的是什么意思,我遇到的问题是,加上了这个参数之后,listbox就没有了内容:
1
2
去掉之后的效果:
3
4
还没理解到是为什么,希望了解的告诉一下
2.LBS_STANDARD这个参数可以自动帮助我们排序,顺序是数字0-9,A-Z(不分大小写,如果为同一字母,小写会在前面),汉字拼音首字母A-Z
3.LBS_HASSTRINGS目前还没使用到,但是看了功能,检索的时候会用到,到时候再来更新

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值