- MFC 教程
- MFC - 首页
- MFC - 概述
- MFC - 环境设置
- MFC - VC++ 项目
- MFC - 入门
- MFC - Windows 基础
- MFC - 对话框
- MFC - Windows 资源
- MFC - 属性表
- MFC - Windows 布局
- MFC - 控件管理
- MFC - Windows 控件
- MFC - 消息与事件
- MFC - ActiveX 控件
- MFC - 文件系统
- MFC - 标准 I/O
- MFC - 文档视图
- MFC - 字符串
- MFC - CArray
- MFC - 链表
- MFC - 数据库类
- MFC - 序列化
- MFC - 多线程
- MFC - Internet 编程
- MFC - GDI
- MFC - 库
- MFC 有用资源
- MFC - 快速指南
- MFC - 有用资源
- MFC - 讨论
MFC - 列表框
一个列表框显示项目列表,例如用户可以查看和选择的文件名。列表框由CListBox 类表示。在单选列表框中,用户只能选择一个项目。在多选列表框中,可以选择一系列项目。当用户选择一个项目时,它会被高亮显示,并且列表框会向父窗口发送通知消息。
以下是列表框的一些映射条目 -
| 消息 | 映射条目 | 描述 |
|---|---|---|
| LBN_DBLCLK | ON_LBN_DBLCLK( <id>, <memberFxn> ) | 当双击列表项时,框架会调用此成员函数。 |
| LBN_KILLFOCUS | ON_LBN_KILLFOCUS( <id>, <memberFxn> ) | 在失去输入焦点之前,框架会立即调用此成员函数。 |
| LBN_SELCHANGE | ON_LBN_SELCHANGE( <id>, <memberFxn> ) | 当选择发生更改时,框架会调用此成员函数。 |
| LBN_SETFOCUS | ON_LBN_SETFOCUS( <id>, <memberFxn> ) | 在获得输入焦点后,框架会调用此成员函数。 |
让我们通过创建一个新的基于 MFC 对话框的应用程序来了解列表框的简单示例。
步骤 1 - 创建项目后,您将看到 TODO 行,它是文本控件的标题。删除标题并将其 ID 设置为 IDC_STATIC_TXT。
步骤 2 - 从工具箱中拖动列表框。
步骤 3 - 为文本控件添加控件变量。
步骤 4 - 为文本控件添加值变量。
步骤 5 - 为列表框控件添加控件变量。
步骤 6 - 为列表框控件添加事件处理程序。
步骤 7 - 从消息类型中选择 LBN_SELCHANGE,并为事件处理程序输入名称。
步骤 8 - 添加一个函数,该函数将加载列表框。
void CMFCListBoxDlg::LoadListBox() {
CString str = _T("");
for (int i = 0; i<10; i++) {
str.Format(_T("Item %d"), i);
m_listBox.AddString(str);
}
}
步骤 9 - 从 CMFCListBoxDlg::OnInitDialog() 中调用该函数,如下面的代码所示。
BOOL CMFCListBoxDlg::OnInitDialog() {
CDialogEx::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
LoadListBox();
return TRUE; // return TRUE unless you set the focus to a control
}
步骤 10 - 这是事件处理程序的实现。这将显示列表框中当前选定的项目。
void CMFCListBoxDlg::OnLbnSelchangeList1() {
// TODO: Add your control notification handler code here
m_listBox.GetText(m_listBox.GetCurSel(),m_strItemSelected);
UpdateData(FALSE);
}
步骤 11 - 编译并执行上述代码后,您将看到以下输出。
步骤 12 - 选择任何项目时,它将显示在文本控件上。
mfc_windows_controls.htm
广告