_WANTKEYBOARDINPUT 风格的列表框才会发送该消息
WM_VKEYTOITEM
当列表框收到WM_KEYDOWN 消息后,向父窗口发送该消息,只有具有
LBS_WANTKEYBOARDINPUT 风格的列表框才会发送该消息
列表框控件封装在MFC 的CListBox 类中,CListBox 类的Create 成员函数用于列表框的
创建,该函数的声明如下。
BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID);
参数dwStyle 指定了列表框控件的风格,如表5-11 所示,dwStyle 可以是这些风格的组
合。rect 说明了控件的位置和尺寸。pParentWnd 指向父窗口,该参数不能为NULL。nID 则
说明了控件的ID。如果创建成功,该函数返回TRUE,否则返回FALSE。
表5-11 列表框控件的风格
风格 含义
LBS_EXTENDEDSEL
支持多重选择,在点击列表项时按住Shift 键或Ctrl 键即可选择
多个项
LBS_HASSTRINGS 指定一个含有字符串的自绘式列表框
LBS_MULTICOLUMN
指定一个水平滚动的多列列表框, 通过调用
CListBox::SetColumnWidth 来设置每列的宽度
LBS_MULTIPLESEL
支持多重选择。列表项的选择状态随着用户对该项单击或双击鼠
标而翻转
LBS_NOINTEGRALHEIGHT
列表框的尺寸由应用程序而不是Windows 指定。通常,Windows
指定尺寸会使列表项的某些部分隐藏起来
LBS_NOREDRAW 当选择发生变化时防止列表框被更新,可发送消息改变该风格
LBS_NOTIFY 当用户单击或双击鼠标时通知父窗口
LBS_OWNERDRAWFIXED
指定自绘式列表框,即由父窗口负责绘制列表框的内容,并且列
表项有相同的高度
LBS_OWNERDRAWVARIABLE 指定自绘式列表框,并且列表项有不同的高度
LBS_SORT 使chā入列表框中的项按升序排列
LBS_STANDARD 相当于指定了WS_BORDER|WS_VSCROLL|LBS_SORT
LBS_USETABSTOPS
使列表框在显示列表项时识别并扩展制表符(‘\t’),默认的制表宽
度是32 个对话框单位
LBS_WANTKEYBOARDINPUT
允许列表框的父窗口接收WM_VKEYTOITEM 和
WM_CHARTOITEM 消息,以响应键盘输入
LBS_DISABLENOSCROLL 使列表框在不需要滚动时显示一个禁止的垂直滚动条
除了上表中的风格外,一般还要为列表框控件指定WS_CHILD、WS_VISIBLE、
WS_TABSTOP、WS_BORDER 和WS_VSCROLL 等风格。要创建一个普通的