ListBox–List View
1.列表风格
LBS_COMBOBOX:组合框中列表
LBS_EXTENDEDSEL:多选。Shift。
LBS_MULTIPLESEL:多选。按下选择,再按取消。
LBS_HASSTRINGS:默认。列表条目有字符串组成。
LB_GETTEXT获取字符串。
自绘列表+无此风格=LB_GETTEXT返回条目关联数据。
LBS_MULTICOLUMN:多列
LB_SETCOLUMNWIDTH 设置列宽
自绘列表,再处理 WM_MEASUREITEM时,可设置列宽。
LBS_NODATA:
无数据列表。
须同时具备:LBS_OWNERDRAWFIXED
且无LBS_SORT or LBS_HASSTRINGS。
条目没有数据。
LBS_NOREDRAW:
列表改变时,界面不更新。
WM_SETREDRAW,切换。
LBS_NOSEL:
列表项不可选。
LBS_NOTIFY:
用户单击(LBN_SELCHANGE),双击(LBN_DBLCLK),取消选择(LBN_SELCANCEL)
给父窗口发通知。
LBS_OWNERDRAWFIXED:
列表拥有者负责绘制列表内容+列表条目高度相同。
列表创建时(WM_MEASUREITEM)
列表可视部分改变时(WM_DRAWITEM)。
此时须有:
LBS_NOINTEGRALHEIGHT
忽略:
LBS_MULTICOLUMN
LBS_SORT:
有序列表
LBS_USETABSTOPS:
Tab支持。
LB_SETTABSTOPS。
对话框模板单位转换为像素单位:MapDialogRect。
LBS_WANTKEYBOARDINPUT:
列表有输入焦点+用户按下一个键=列表拥有者接收WM_VKEYTOITEM。
2.通知码
形式:
WM_COMMAND
wParam:LOWORD(wParam)-ID,HIWORD(wParam)-通知码。lParam:句柄。
LBN_DBLCLK:双击。
LBN_ERRSPACE:列表不能分配足够内存来满足一个请求。
LBN_KILLFOCUS:列表框失去键盘焦点。
LBN_SELCANCEL:取消选择某项
LBN_SELCHANGE:选择项将改变。
LBN_SETFOCUS:列表接收键盘焦点。
列表放给父窗口的其它消息:
WM_COMPAREITEM:
WM_VKEYTOITEM:
WM_VCHARTOITEM:
WM_DELETEITEM:
WM_CTLCOLORLISTBOX:
3.可发往列表框的消息
LD_ADDFILE:结合DlgDirList(文件目录相关)使用。
LB_DIR:文件目录相关
LB_ADDSTRING:插入字符串。
LB_DELETESTRING:移除字符串。
LB_FINDSTRING:搜索匹配项
LB_FINDSTRINGEXACT:精确匹配。
LB_GETANCHORINDEX:获得鼠标最后选择的条目索引。
LB_GETCAREINDEX:获得有焦点矩形的条目索引。
LB_GETCOUNT:
LB_GETCURSEL:
LB_GETHORIZONTALEXTENT:水平可滚动宽。
LB_GETITEMDATA:
LB_GETITEMHEIGHT:
LB_GETITEMRECT:
LB_GETLOCALE:语言相关。
LB_GETSEL:选择状态。
LB_GETSELCOUNT:多选。选择项数。
LB_GETSELITEMS:多选中选择项。
LB_GETTEXT:
LB_GETTEXTLEN:字符数。
LB_GETTOPINDEX:第一个可视条目索引。
LB_INITSTORAGE:为指定数量条目和关联字符串分配内存。
LB_INSERTSTRING:
LB_ITEMFROMPOINT:最靠近指定点条目索引。
LB_RESETCONTENT:
LB_SELECTSTRING:匹配+选择。
LB_SELITEMRANGE:范围选择
LB_SETANCHORINDEX:把鼠标最后选择条目设为一指定条目。
LB_SETCAREINDEX:设置焦点矩形到指定条目。
LB_SETCOUNT:设置列表条目数。
LB_SETCURSEL:选择指定项。
LB_SETHORIZONTALEXTENT:可滚动宽。
LB_SETITEMDATA:
LB_SETITEMHEIGHT:
LB_SETLOCALE:
LB_SETSEL:多选,设置选择项集合。
LB_SETTABSTOPS:格式控制。
LB_SETTOPINDEX:把指定项显示为第一个可视项。
4.Drag List Boxes
可拖拉列表。