组合框(Windows 控件)
本部分包含有关与组合框一起使用的编程元素的信息。 组合框是由 COMBOBOX 类定义的唯一控件类型,组合了列表框和编辑控件的大部分功能。
概述
主题 | 目录 |
---|---|
关于组合框 | 本部分讨论不同类型的组合框。 |
组合框功能 | 本文档讨论组合框的功能。 |
使用组合框 | 本节中的代码示例演示了如何执行与组合框相关的任务。 |
函数
主题 | 目录 |
---|---|
DlgDirListComboBox | 将组合框的内容替换为指定目录中的子目录和文件的名称。 可以通过指定一组文件属性来筛选名称列表。 名称列表可以包括映射的驱动器号。 |
DlgDirSelectComboBoxEx | 使用 DlgDirListComboBox 函数从填充的组合框中检索当前所选内容。 所选内容解释为驱动器号、文件或目录名称。 |
GetComboBoxInfo | 检索有关指定组合框的信息。 |
宏
主题 | 目录 |
---|---|
ComboBox_AddItemData | 将项数据添加到组合框中列表的指定位置。 可以使用此宏,也可以显式发送 CB_ADDSTRING 消息。 |
ComboBox_AddString | 将字符串添加到组合框中的列表中。 如果组合框没有 CBS_SORT 样式,则字符串将添加到列表的末尾。 否则,会将字符串插入到列表中,并对列表进行排序。 可以使用此宏,也可以显式发送 CB_ADDSTRING 消息。 |
ComboBox_DeleteString | 删除组合框中列表指定位置的项。 可以使用此宏或显式发送 CB_DELETESTRING 消息。 |
ComboBox_Dir | 将名称添加到组合框显示的列表。 该宏将添加与指定字符串和文件属性集匹配的目录和文件的名称。 它还可以将映射的驱动器号添加到组合框中的列表。 可以使用此宏,或显式发送 CB_DIR 消息。 |
ComboBox_Enable | 启用或禁用组合框控件。 |
ComboBox_FindItemData | 查找组合框列表中具有指定项数据的第一项。 可以使用此宏,也可以显式发送 CB_FINDSTRING 消息。 |
ComboBox_FindString | 在组合框列表中查找以指定字符串开头的第一个字符串。 可以使用此宏,也可以显式发送 CB_FINDSTRING 消息。 |
ComboBox_FindStringExact | 在组合框列表中查找与指定字符串完全匹配的第一个字符串,但搜索不区分大小写。 可以使用此宏或显式发送 CB_FINDSTRINGEXACT 消息。 |
ComboBox_GetCount | 获取组合框的列表框中的项数。 可以使用此宏,也可以显式发送 CB_GETCOUNT 消息。 |
ComboBox_GetCueBannerText | 获取组合框的编辑控件中显示的提示横幅文本。 使用此宏,或显式发送 CB_GETCUEBANNER 消息。 |
ComboBox_GetCurSel | 获取组合框中当前选定项的索引。 可以使用此宏,也可以显式发送 CB_GETCURSEL 消息。 |
ComboBox_GetDroppedControlRect | 检索处于下拉状态的组合框的屏幕坐标。 可以使用此宏或显式发送 CB_GETDROPPEDCONTROLRECT 消息。 |
ComboBox_GetDroppedState | 确定组合框控件中的下拉列表是否可见。 可以使用此宏或显式发送 CB_GETDROPPEDSTATE 消息。 |
ComboBox_GetExtendedUI | 确定组合框是使用默认用户界面 (UI) 还是扩展 UI。 可以使用此宏或显式发送 CB_GETEXTENDEDUI 消息。 |
ComboBox_GetItemData | 获取与组合框中指定列表项关联的应用程序定义的值。 可以使用此宏或显式发送 CB_GETITEMDATA 消息。 |
ComboBox_GetItemHeight | 检索组合框中列表项的高度。 可以使用此宏或显式发送 CB_GETITEMHEIGHT 消息。 |
ComboBox_GetLBText | 从组合框中的列表中获取字符串。 可以使用此宏,也可以显式发送 CB_GETLBTEXT 消息。 |
ComboBox_GetLBTextLen | 获取组合框中列表中字符串的长度。 可以使用此宏,也可以显式发送 CB_GETLBTEXTLEN 消息。 |
ComboBox_GetMinVisible | 获取组合框的下拉列表中可见项的最小数目。 |
ComboBox_GetText | 从组合框控件中检索文本。 |
ComboBox_GetTextLength | 获取组合框文本中的字符数。 |
ComboBox_InsertItemData | 在组合框中列表的指定位置插入项数据。 可以使用此宏或显式发送 CB_INSERTSTRING 消息。 |
ComboBox_InsertString | 将字符串添加到组合框中列表的指定位置。 可以使用此宏或显式发送 CB_INSERTSTRING 消息。 |
ComboBox_LimitText | 限制用户可以在组合框的编辑控件中键入的文本的长度。 可以使用此宏或显式发送 CB_LIMITTEXT 消息。 |
ComboBox_ResetContent | 从列表框中移除所有项,并在组合框中编辑控件。 可以使用此宏或显式发送 CB_RESETCONTENT 消息。 |
ComboBox_SelectItemData | 在组合框中搜索具有指定项数据的项的列表。 如果找到匹配项,则选择该项。 可以使用此宏或显式发送 CB_SELECTSTRING 消息。 |
ComboBox_SelectString | 在组合框中搜索以指定字符串中的字符开头的项的列表。 如果找到匹配项,则选择该项。 可以使用此宏或显式发送 CB_SELECTSTRING 消息。 |
ComboBox_SetCueBannerText | 设置为组合框的编辑控件显示的提示横幅文本。 |
ComboBox_SetCurSel | 设置组合框中的当前选定项。 可以使用此宏,也可以显式发送 CB_SETCURSEL 消息。 |
ComboBox_SetExtendedUI | 为具有 CBS_DROPDOWN 或 CBS_DROPDOWNLIST 样式的组合框选择默认用户界面 (UI) 或扩展 UI。 可以使用此宏或显式发送 CB_SETEXTENDEDUI 消息。 |
ComboBox_SetItemData | 设置与组合框中指定列表项关联的应用程序定义的值。 可以使用此宏或显式发送 CB_SETITEMDATA 消息。 |
ComboBox_SetItemHeight | 设置组合框中的列表项或选择字段的高度。 可以使用此宏或显式发送 CB_SETITEMHEIGHT 消息。 |
ComboBox_SetMinVisible | 设置组合框的下拉列表中可见项的最小数目。 |
ComboBox_SetText | 设置组合框的文本。 |
ComboBox_ShowDropdown | 在组合框中显示或隐藏列表。 可以使用此宏或显式发送 CB_SHOWDROPDOWN 消息。 |
消息
主题 | 目录 |
---|---|
CB_ADDSTRING | 将字符串添加到组合框的列表框。 如果组合框没有 CBS_SORT 样式,则字符串将添加到列表的末尾。 否则,会将字符串插入到列表中,并对列表进行排序。 |
CB_DELETESTRING | 删除组合框的列表框中的字符串。 |
CB_DIR | 将名称添加到组合框显示的列表。 该消息将添加与指定字符串和文件属性集匹配的目录和文件的名称。 CB_DIR 还可以将映射的驱动器号添加到列表中。 |
CB_FINDSTRING | 在组合框的列表框中搜索以指定字符串中的字符开头的项。 |
CB_FINDSTRINGEXACT | 在组合框中查找与 lParam 参数中指定的字符串匹配的第一个列表框字符串。 |
CB_GETCOMBOBOXINFO | 获取有关指定组合框的信息。 |
CB_GETCOUNT | 获取组合框的列表框中的项数。 |
CB_GETCUEBANNER | 获取组合框的编辑控件中显示的提示横幅文本。 显式发送此消息,也可以使用 ComboBox_GetCueBannerText 宏发送。 |
CB_GETCURSEL | 应用程序在组合框的列表框中发送 CB_GETCURSEL 消息以检索当前所选项的索引(如果有)。 |
CB_GETDROPPEDCONTROLRECT | 应用程序发送 CB_GETDROPPEDCONTROLRECT 消息,以检索处于下拉状态的组合框的屏幕坐标。 |
CB_GETDROPPEDSTATE | 确定组合框的列表框是否处于下拉状态。 |
CB_GETDROPPEDWIDTH | 获取具有 CBS_DROPDOWN 或 CBS_DROPDOWNLIST 样式的组合框列表框的最小允许宽度(以像素为单位)。 |
CB_GETEDITSEL | 获取组合框的编辑控件中当前所选内容的起始和结束字符位置。 |
CB_GETEXTENDEDUI | 确定组合框是具有默认用户界面还是扩展的用户界面。 |
CB_GETHORIZONTALEXTENT | 获取列表框可以水平滚动的宽度(可滚动宽度)(以像素为单位)。 这仅适用于列表框具有水平滚动条的情况。 |
CB_GETITEMDATA | 应用程序将 CB_GETITEMDATA 消息发送到组合框,以检索与组合框中指定项关联的应用程序提供的值。 |
CB_GETITEMHEIGHT | 确定组合框中的列表项或选择字段的高度。 |
CB_GETLBTEXT | 从组合框的列表中获取字符串。 |
CB_GETLBTEXTLEN | 获取组合框列表中字符串的长度(以字符为单位)。 |
CB_GETLOCALE | 获取组合框的当前区域设置。 区域设置用于确定具有使用 CB_ADDSTRING 消息添加的 CBS_SORT 样式和文本的组合框显示文本的正确排序顺序。 |
CB_GETMINVISIBLE | 获取组合框的下拉列表中可见项的最小数目。 |
CB_GETTOPINDEX | 应用程序发送 CB_GETTOPINDEX 消息以检索组合框的列表框部分中第一个可见项的从零开始的索引。 最初,索引 0 的项位于列表框的顶部,但如果列表框内容已滚动,则另一项可能位于顶部。 |
CB_INITSTORAGE | 应用程序在将大量项添加到组合框的列表框部分之前发送 CB_INITSTORAGE 消息。 此消息分配用于存储列表框项的内存。 |
CB_INSERTSTRING | 将字符串或项数据插入组合框的列表。 与 CB_ADDSTRING 消息不同,CB_INSERTSTRING 消息不会对具有 CBS_SORT 样式的列表进行排序。 |
CB_LIMITTEXT | 限制用户可以在组合框的编辑控件中键入的文本的长度。 |
CB_RESETCONTENT | 从列表框中移除所有项,并在组合框中编辑控件。 |
CB_SELECTSTRING | 在组合框的列表中搜索以指定字符串中的字符开头的项。 如果找到匹配的项,则会将其选中并复制到编辑控件。 |
CB_SETCUEBANNER | 设置为组合框的编辑控件显示的提示横幅文本。 |
CB_SETCURSEL | 应用程序发送 CB_SETCURSEL 消息以选择组合框列表中的字符串。 如有必要,列表会将字符串滚动到视图中。 组合框的编辑控件中的文本将更改以反映新的选择,并且列表中的任何先前选择都将被删除。 |
CB_SETDROPPEDWIDTH | 应用程序发送 CB_SETDROPPEDWIDTH 消息,以设置具有 CBS_DROPDOWN 或 CBS_DROPDOWNLIST 样式的组合框的列表框的最大允许宽度(以像素为单位)。 |
CB_SETEDITSEL | 应用程序发送 CB_SETEDITSEL 消息来选择组合框的编辑控件中的字符。 |
CB_SETEXTENDEDUI | 应用程序发送 CB_SETEXTENDEDUI 消息,以选择具有 CBS_DROPDOWN 或 CBS_DROPDOWNLIST 样式的组合框的默认 UI 或扩展 UI。 |
CB_SETHORIZONTALEXTENT | 应用程序发送 CB_SETHORIZONTALEXTENT 消息以设置宽度(以像素为单位),列表框可以按此宽度水平滚动(可滚动宽度)。 如果列表框的宽度小于此值,则水平滚动条将水平滚动列表框中的项。 如果列表框的宽度等于或大于此值,则隐藏水平滚动条,或者如果组合框具有 CBS_DISABLENOSCROLL 样式,则禁用。 |
CB_SETITEMDATA | 应用程序发送 CB_SETITEMDATA 消息来设置与组合框中的指定项关联的值。 |
CB_SETITEMHEIGHT | 应用程序发送 CB_SETITEMHEIGHT 消息,以设置组合框中列表项或选择字段的高度。 |
CB_SETLOCALE | 应用程序发送 CB_SETLOCALE 消息以设置组合框的当前区域设置。 如果组合框具有 CBS_SORT 样式并使用 CB_ADDSTRING 添加字符串,则组合框的区域设置会影响列表项的排序方式。 |
CB_SETMINVISIBLE | 应用程序发送 CB_SETMINVISIBLE 消息,以在组合框的下拉列表中设置最小可见项数。 |
CB_SETTOPINDEX | 应用程序发送 CB_SETTOPINDEX 消息,以确保特定项在组合框的列表框中可见。 系统滚动列表框内容,以便指定的项显示在列表框的顶部或已达到最大滚动范围。 |
CB_SHOWDROPDOWN | 应用程序发送 CB_SHOWDROPDOWN 消息,以显示或隐藏具有 CBS_DROPDOWN 或 CBS_DROPDOWNLIST 样式的组合框的列表框。 |
通知
主题 | 目录 |
---|---|
CBN_CLOSEUP | 关闭组合框的列表框时发送 CBN_CLOSEUP 通知代码。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_DBLCLK | 用户双击组合框的列表框中的字符串时发送 CBN_DBLCLK 通知代码。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_DROPDOWN | 组合框的列表框即将可见时发送 CBN_DROPDOWN 通知代码。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_EDITCHANGE | 用户采取可能已更改组合框的编辑控件部分中的文本的操作后发送 CBN_EDITCHANGE 通知代码。 与 CBN_EDITUPDATE 通知代码不同,此通知代码会在系统更新屏幕后发送。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_EDITUPDATE | 当组合框的编辑控件部分即将显示更改的文本时,将发送 CBN_EDITUPDATE 通知代码。 此通知代码在控件格式化文本之后,但在显示文本之前发送。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_ERRSPACE | 组合框无法分配足够的内存来满足特定请求时发送 CBN_ERRSPACE 通知代码。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_KILLFOCUS | 组合框失去键盘焦点时发送 CBN_KILLFOCUS 通知代码。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_SELCHANGE | 用户更改组合框的列表框中的当前选择时发送 CBN_SELCHANGE 通知代码。 用户可以通过单击列表框或使用箭头键来更改所选内容。 组合框的父窗口以 WM_COMMAND 消息的形式接收此通知,并在 wParam 参数的高位字中包含 CBN_SELCHANGE。 |
CBN_SELENDCANCEL | 当用户选择某个项,但随后选择另一个控件或关闭对话框时,将发送 CBN_SELENDCANCEL 通知代码。 它指示用户的初始选择将被忽略。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
CBN_SELENDOK | 当用户选择列表项或选择某项然后关闭列表时,将发送 CBN_SELENDOK 通知代码。 它指示要处理用户的选择。 组合框的父窗口通过 WM_COMMAND 消息接收此通知代码。 |
CBN_SETFOCUS | 组合框收到键盘焦点时发送 CBN_SETFOCUS 通知代码。 组合框的父窗口会通过 WM_COMMAND 消息接收此通知代码。 |
WM_COMPAREITEM | 系统发送 WM_COMPAREITEM 消息,以确定新项在所有者绘制组合框或列表框的排序列表中的相对位置。 每当应用程序添加新项时,系统将此消息发送到使用 CBS_SORT 或 LBS_SORT 样式创建的组合框或列表框的所有者。 |
WM_DRAWITEM | 当按钮、组合框、列表框或菜单的可视部分发生更改时,WM_DRAWITEM 消息将发送到所有者绘制按钮、组合框、列表框或菜单的父窗口。 |
WM_MEASUREITEM | 创建控件或菜单时,WM_MEASUREITEM 消息将发送到组合框、列表框、列表视图控件或菜单项的所有者窗口。 |
结构
主题 | 目录 |
---|---|
COMBOBOXINFO | 包含组合框状态信息。 |
COMPAREITEMSTRUCT | 为排序的所有者绘制的列表框或组合框中的两个项提供标识符和应用程序提供的数据。 |
DRAWITEMSTRUCT | 提供有关所有者窗口确定如何绘制所有者描述的控件或菜单项的必要信息。 所有者描述的控件或菜单项的所有者窗口接收指向此结构的指针作为 WM_DRAWITEM 消息的 lParam 参数。 |
MEASUREITEMSTRUCT | 通知系统所有者绘制的控件或菜单项的尺寸。 这样,系统就可以正确处理用户与控件的交互。 |
常量
主题 | 目录 |
---|---|
组合框样式 | 若要使用 CreateWindow 或 CreateWindowEx 函数创建组合框,请指定 COMBOBOX 类、适当的窗口样式常量以及以下组合框样式的组合。 |