MFC 中的 List Box函数

首页 / MFC入门教程 / MFC 中的 List Box函数

列表框显示用户可以查看和选择的项目列表,例如文件名,列表框由 CListBox类表示,在单选列表框中,用户只能选择一项,在多选列表框中,可以选择一系列项目,当用户选择一个项目时,该项目将突出显示,并且列表框会将通知消息发送到父窗口。

这是列表框的一些映射条目

MessageMap entry描述
LBN_DBLCLKON_LBN_DBLCLK( <id>, <memberFxn> )双击列表项时,框架调用此函数。
LBN_KILLFOCUSON_LBN_KILLFOCUS( <id>, <memberFxn> )框架在失去输入焦点之前立即调用此函数。
LBN_SELCHANGEON_LBN_SELCHANGE( <id>, <memberFxn> )更改选择时,框架将调用此函数。
LBN_SETFOCUSON_LBN_SETFOCUS( <id>, <memberFxn> )框架在获得输入焦点后调用此函数。

让无涯教程通过创建一个新的基于MFC对话框的应用程序来查看"List box"的简单示例。

步骤1 - 创建项目后,您将看到TODO行,即文本控件的标题。删除标题并将其ID设置为IDC_STATIC_TXT。

步骤2 - 从工具箱中拖动列表框。

无涯教程网

Listbox1

步骤3 - 为文本控件添加控件变量。

Listbox2

步骤4 -为Text控件添加Value变量。

Listbox3

步骤5 - 为列表框控件添加控件变量。

Listbox4

步骤6 -为列表框控件添加事件处理程序。

链接:https://www.learnfk.comhttps://www.learnfk.com/mfc/mfc-list-box.html

来源:LearnFk无涯教程网

Listbox5

步骤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 - 编译并执行上述代码后,您将看到以下输出。

Listbox6

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术领导力实战笔记 -〔TGO鲲鹏会〕

代码精进之路 -〔范学雷〕

玩转Spring全家桶 -〔丁雪丰〕

深入拆解Tomcat & Jetty -〔李号双〕

DDD实战课 -〔欧创新〕

软件设计之美 -〔郑晔〕

Web安全攻防实战 -〔王昊天〕

性能优化高手课 -〔尉刚强〕

林外 · 专利写作第一课 -〔林外〕

好记忆不如烂笔头。留下您的足迹吧 :)