对话框过程可以将消息发送到列表框以添加,删除,检查和更改列表框项。例如,对话框过程可以向列表框发送LB_ADDSTRING消息以添加项目,并发送LB_GETSEL消息以确定是否选择该项目。其他消息设置和检索有关列表框的大小,外观和行为的信息。例如,LB_SETHORIZONTALEXTENT消息设置列表框的可滚动宽度。对话框过程可以使用SendMessage或SendDlgItemMessage功能将任何消息发送到列表框。
列表框项目通常由其索引引用,该索引是表示项目在列表框中的位置的整数。列表框中第一个项目的索引为0,第二个项目的索引为1,依此类推。
下表描述了预定义列表框过程如何响应列表框消息。
信息 | 响应 |
LB_ADDFILE | 将文件插入由DlgDirList函数填充的目录列表框中,并检索插入项目的列表框索引。 |
LB_ADDSTRING | 将一个字符串添加到列表框并返回其索引。 |
LB_DELETESTRING | 从列表框中移除一个字符串,并返回列表中剩余的字符串数。 |
LB_DIR | 向列表框添加文件名列表,并返回最后添加的文件名的索引。 |
LB_FINDSTRING | 返回与给定前缀匹配的列表框中的第一个字符串的索引。 |
LB_FINDSTRINGEXACT | 返回与给定前缀相当或前缀的字符串的索引。 |
LB_GETANCHORINDEX | 返回鼠标上次选择的项目的索引。 |
LB_GETCARETINDEX | 返回具有焦点矩形的项目的索引。 |
LB_GETCOUNT | 返回列表框中的项目数。 |
LB_GETCURSEL | 返回当前所选项目的索引。 |
LB_GETHORIZONTALEXTENT | 返回列表框的可滚动宽度(以像素为单位)。 |
LB_GETITEMDATA | 返回与给定项目相关联的32位值。 |
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_SELITEMRANGEEX | 如果范围中的第一个项目的索引小于该范围中最后一个项目的索引,则选择一个给定的项目范围。如果第一个项目的索引大于上一个项目的索引,则取消范围中的选择。 |
LB_SETANCHORINDEX | 将鼠标上次选择的项目设置为给定项目。 |
LB_SETCARETINDEX | 将焦点矩形设置为给定的列表框项目。 |
LB_SETCOLUMNWIDTH | 设置列表框中所有列的宽度(以像素为单位)。 |
LB_SETCOUNT | 设置列表框中的项目数。 |
LB_SETCURSEL | 选择给定的列表框项目。 |
LB_SETHORIZONTALEXTENT | 设置列表框的可滚动宽度(以像素为单位)。 |
LB_SETITEMDATA | 将32位值与列表框项关联。 |
LB_SETITEMHEIGHT | 设置列表框中项目或项目的高度(以像素为单位)。 |
LB_SETLOCALE | 设置列表框的区域设置并返回上一个区域设置标识符。 |
LB_SETSEL | 在多选列表框中选择一个项目。 |
LB_SETTABSTOPS | 将制表位置设置为给定数组中指定的制表位。 |
LB_SETTOPINDEX | 滚动列表框,使指定的项目位于可见范围的顶部。 |