列表框显示用户可以查看和选择的项目列表,例如文件名,列表框由 CListBox类表示,在单选列表框中,用户只能选择一项,在多选列表框中,可以选择一系列项目,当用户选择一个项目时,该项目将突出显示,并且列表框会将通知消息发送到父窗口。
这是列表框的一些映射条目
Message | Map entry | 描述 |
---|---|---|
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对话框的应用程序来查看"List box"的简单示例。
步骤1 - 创建项目后,您将看到TODO行,即文本控件的标题。删除标题并将其ID设置为IDC_STATIC_TXT。
步骤2 - 从工具箱中拖动列表框。
步骤3 - 为文本控件添加控件变量。
步骤4 -为Text控件添加Value变量。
步骤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 - 编译并执行上述代码后,您将看到以下输出。
参考链接
https://www.learnfk.com/mfc/mfc-list-box.html
标签:Box,控件,列表框,MFC,函数,步骤,List,CMFCListBoxDlg,LBN From: https://blog.51cto.com/u_14033984/8777532