MFC - 组合框
组合框由与静态控件或编辑控件组合的列表框组成。 它由 CComboBox 类表示。 控件的列表框部分可以一直显示,或者仅当用户选择控件旁边的下拉箭头时才下拉。
序号 |
名称和描述 |
1 |
AddString 将字符串添加到组合框的列表框中的列表末尾,或者使用 CBS_SORT 样式的列表框的排序位置。 |
2 |
Clear 删除(清除)编辑控件中的当前选择(如果有)。 |
3 |
CompareItem 由框架调用以确定新列表项在排序的自绘制组合框中的相对位置。 |
4 |
Copy 将当前选择(如果有)以 CF_TEXT 格式复制到剪贴板上。 |
5 |
Create 创建组合框并将其附加到 CComboBox 对象。 |
6 |
Cut 删除(剪切)编辑控件中的当前选择(如果有),并将删除的文本以 CF_TEXT 格式复制到剪贴板。 |
7 |
DeleteItem 从所有者绘制的组合框中删除列表项时由框架调用。 |
8 |
DeleteString 从组合框的列表框中删除字符串。 |
9 |
Dir 将文件名列表添加到组合框的列表框中。 |
10 |
DrawItem 当所有者绘制的组合框的视觉方面发生变化时由框架调用。 |
11 |
FindString 在组合框的列表框中查找包含指定前缀的第一个字符串。 |
12 |
FindStringExact 查找与指定字符串匹配的第一个列表框字符串(在组合框中)。 |
13 |
GetComboBoxInfo 检索有关 CComboBox 对象的信息。 |
14 |
GetCount 检索组合框列表框中的项目数。 |
15 |
GetCueBanner 获取为组合框控件显示的提示文本。 |
16 |
GetCurSel 检索组合框的列表框中当前所选项目的索引(如果有)。 |
17 |
GetDroppedControlRect 检索下拉组合框的可见(下拉)列表框的屏幕坐标。 |
18 |
GetDroppedState 确定下拉组合框的列表框是否可见(下拉)。 |
19 |
GetDroppedWidth 检索组合框的下拉列表框部分允许的最小宽度。 |
20 |
GetEditSel 获取组合框编辑控件中当前选择的起始和结束字符位置。 |
21 |
GetExtendedUI 确定组合框是否具有默认用户界面或扩展用户界面 |
22 |
GetHorizontalExtent 返回组合框的列表框部分可以水平滚动的宽度(以像素为单位)。 |
23 |
GetItemData 检索应用程序提供的与指定组合框项关联的 32 位值。 |
24 |
GetItemDataPtr 检索应用程序提供的与指定组合框项关联的 32 位指针。 |
25 |
GetItemHeight 检索组合框中列表项的高度。 |
26 |
GetLBText 从组合框的列表框中获取字符串。 |
27 |
GetLBTextLen 获取组合框列表框中字符串的长度。 |
28 |
GetLocale 检索组合框的区域设置标识符。 |
29 |
GetMinVisible 获取当前组合框下拉列表中可见项的最小数量。 |
30 |
GetTopIndex 返回组合框的列表框部分中第一个可见项的索引。 |
31 |
InitStorage 为组合框的列表框部分中的项目和字符串预分配内存块。 |
32 |
InsertString 将字符串插入组合框的列表框中。 |
33 |
LimitText 限制用户可以在组合框的编辑控件中输入的文本长度。 |
34 |
MeasureItem 由框架调用,以确定创建 Ownerdrawn 组合框时的组合框尺寸 |
35 |
Paste 将剪贴板中的数据插入到当前光标位置的编辑控件中。 仅当剪贴板包含 CF_TEXT 格式的数据时才插入数据。 |
36 |
ResetContent 从列表框和组合框的编辑控件中删除所有项目。 |
37 |
SelectString 在组合框的列表框中搜索字符串,如果找到该字符串,则选择列表框中的字符串并复制 编辑控件的字符串。 |
38 |
SetCueBanner 设置为组合框控件显示的提示文本。 |
39 |
SetCurSel 在组合框的列表框中选择一个字符串。 |
40 |
SetDroppedWidth 设置组合框的下拉列表框部分允许的最小宽度。 |
41 |
SetEditSel 在组合框的编辑控件中选择字符。 |
42 |
SetExtendedUI 为具有 CBS_DROPDOWN 或 的组合框选择默认用户界面或扩展用户界面 >CBS_DROPDOWNLIST 样式。 |
43 |
SetHorizontalExtent 设置组合框的列表框部分可以水平滚动的宽度(以像素为单位)。 |
44 |
SetItemData 设置与组合框中指定项目关联的 32 位值。 |
45 |
SetItemDataPtr 设置与组合框中指定项目关联的 32 位指针。 |
46 |
SetItemHeight 设置组合框中列表项的高度或组合框编辑控件(或静态文本)部分的高度。 |
47 |
SetLocale 设置组合框的区域设置标识符。 |
48 |
SetMinVisibleItems 设置当前组合框下拉列表中可见项目的最小数量。 |
49 |
SetTopIndex 告诉组合框的列表框部分在顶部显示具有指定索引的项目。 |
50 |
ShowDropDown 显示或隐藏具有 CBS_DROPDOWN 或 CBS_DROPDOWNLIST 样式的组合框的列表框。 |
这是组合框控件映射的消息列表 −
消息 |
映射条目 |
描述 |
CBN_DBLCLK |
ON_CBN_DBLCLK( <id>, <memberFxn> ) |
用户双击组合框列表框中的字符串。 |
CBN_DROPDOWN |
ON_CBN_DROPDOWN( <id>, <memberFxn> ) |
组合框的列表框即将下拉(变得可见)。 |
CBN_EDITCHANGE |
ON_CBN_EDITCHANGE( <id>, <memberFxn> ) |
用户执行的操作可能会更改组合框的 editcontrol 部分中的文本。 |
CBN_EDITUPDATE |
ON_CBN_EDITUPDATE( <id>, <memberFxn> ) |
组合框的编辑控件部分将显示更改后的文本。 |
CBN_KILLFOCUS |
ON_CBN_KILLFOCUS( <id>, <memberFxn> ) |
组合框正在失去输入焦点。 |
CBN_SELCHANGE |
ON_CBN_SELCHANGE( <id>, <memberFxn> ) |
组合框的列表框中的选择将由于用户单击列表框或使用箭头键更改选择而更改。 |
CBN_SETFOCUS |
ON_CBN_SETFOCUS( <id>, <memberFxn> ) |
组合框接收输入焦点。 |
让我们通过创建一个新的基于 MFC 对话框的应用程序来研究单选按钮的示例。
步骤 1 − 拖动组合框并删除静态文本控件的标题。
步骤 2 − 添加用于组合框的控件变量 m_comboBoxCtrl 和用于静态文本控件的值变量 m_strTextCtrl。
步骤 3 − 添加组合框选择更改的事件处理程序。
步骤 4 − 在 OnInitDialog() 中添加以下代码以加载组合框。
for (int i = 0; i<10; i++) {
str.Format(_T("Item %d"), i);
m_comboBoxCtrl.AddString(str);
}
步骤 5 − 这是事件处理程序的实现。
void CMFCComboBoxDlg::OnCbnSelchangeCombo1() {
// TODO: Add your control notification handler code here
m_comboBoxCtrl.GetLBText(m_comboBoxCtrl.GetCurSel(), m_strTextCtrl);
UpdateData(FALSE);
}
步骤 6 − 当上面的代码被编译并执行时,您将看到以下输出。
步骤 7 − 当您选择任何项目时,它将显示在文本控件上。
❮ mfc_windows_controls.html