- 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
广告