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 创建自绘组合框时,框架调用此方法来确定组合框的尺寸。 |
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> ) |
用户执行了可能已更改组合框编辑控件部分文本的操作。 |
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.htm