LBS_EXTENDEDSEL 使用键盘“SHIFT”键或另指定键加鼠标进行多选。就是VC RC 编辑器上的 Selection 里面选上Extended
LBS_MULTICOLUMN 多列列表框,带有水平滚动条。应用程序可以用 LB_SETCOLUMNWIDTH 消息来为列表框指定列数。
LBS_MULTIPLESEL 支持多重选择。
LBS_NOREDRAW 禁止刷新。当选择发生变化时防止列表框被更新,可发送WM_SETREDRAW来改变该风格。
LBS_NOSEL 禁止选择,列表项只能看,不能被选择。
LBS_SORT 使插入列表框中的项按字母升序排列.
LBS_WANTKEYBOARDINPUT 响应键盘输入。当控件拥有键盘输入焦点时,允许接收父窗口接收WM_VKEYTOITEM和WM_CHARTOITEM消息,输入字符。
List Box 接收如下Message
下面就把常用的几个写一下
LB_ADDSTRING
这个消息,如果指定了LBS_SORT风格,表项会自动重按字母序重排。而LB_INSERTSTRING不会自动重排
LB_FINDSTRING 如果wParam 为-1 则从列表第一项开始查找,找到返回表项序号。否则按WPARAM 指定的INDEX 项开始查找
另外它是不精确匹配查找,比如 有“FUCK123",查找 ”fuck"即为找到
LB_FINDSTRINGEXACT 就是精确匹配字符串
LB_GETCOUNT 返回列表项的总项数
LB_GETCURSEL 返回当前被选择项的索引,如果没有返回LB_ERR
LB_GETITEMDATA 返回每个列表项的一个32位的附加数据
LB_GETSEL 用于测试指定索引项是否被选择
LB_GETSELCOUNT 本操作仅用于多重选择列表框,它返回选择项的数目
LB_GETTEXT 用于获取指定列表项的字符串
LB_GETTEXTLEN 返回指定列表项的字符串的字节长度
LB_GETTOPINDEX 返回列表框中第一个可见项的索引
LB_RESETCONTENT 清除所有列表项
LB_SELECTSTRING 本操作仅适用于单选择列表框,设定与指定字符串相匹配的列表项为选中项
LB_SELITEMRANGEEX 本操作仅用于多重选择列表框,终点大于起点则设定该范围为选中,定起点大于终点则设定该范围为落选。
LB_SETCOUNT 设置表项数目
LB_SETCURSEL 本操作仅适用于单选择列表框,设置指定的列表项为当前选择项,wParam指定了列表项的索引,若为-1,
清除列表框中的选择
LB_SETITEMDATA 更新指定列表项的32位附加数据。
LB_SETSEL 本操作仅适用于多重选择列表框,它使指定的列表项选中或落选。参数lParam指定了列表项的索引,若为-1,
则相当于指定了所有的项。参数wParam为TRUE时选中列表项,否则使之落选。若出错则返回LB_ERR。
当用户在列表框上进行各种操作时,其父窗口将收到WM_COMMAND通知消息,同时wParam的低16位带控件的ID。lParam带控件句柄(hWnd),wParam的高16位带有如下表的消息代码。
消息代码 说明
LBN_DBLCLK 用户单击了列表项。
LBN_ERRSPACE 列表框无法申请到足够的内存空间。
LBN_KILLFOCUS 列表框失去输入焦点。
LBN_SELCANCEL 取消选择列表项。
LBN_SELCHANGE 列表框的选择项即将被改变。
LBN_SETFOCUS 列表框得到键盘输入焦点。