首页 > 其他分享 >无涯教程-MFC - List Box函数

无涯教程-MFC - List Box函数

时间:2023-12-11 20:31:38浏览次数:32  
标签:Box 控件 列表框 MFC 函数 步骤 List CMFCListBoxDlg LBN

列表框显示用户可以查看和选择的项目列表,例如文件名,列表框由 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 - 从工具箱中拖动列表框。

Listbox1

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

Listbox2

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

Listbox3

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

Listbox4

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

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

参考链接

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

标签:Box,控件,列表框,MFC,函数,步骤,List,CMFCListBoxDlg,LBN
From: https://blog.51cto.com/u_14033984/8777532

相关文章

  • 无涯教程-MFC - Command Button函数
    命令按钮是常规按钮的增强版本,它在左侧显示一个绿色箭头图标,后跟一个常规尺寸的标题,在主标题下,它可以显示另一个较小的标题,作为提示以提供更多信息。这是命令按钮控件的消息映射列表-MessageMapentry描述BN_CLICKEDON_BN_CLICKED(<id>,<memberFxn>)单击按钮时,框架将调......
  • 无涯教程-MFC - Static Text函数
    静态控件显示文本字符串,框,矩形,图标,光标,位图或增强型图元文件,它由CStatic类表示,它可用于标签,框或分离其他控件,静态控件通常不接受输入,也不提供输出。这是CStatic类中的方法列表-Sr.No.Name&描述1Create创建Windowsstatic控件并将其附加到CStatic对象。2DrawItem......
  • CreateDialog 与 DialogBox
    DWORDWINAPIUploadThread(LPVOIDlpParam){HWNDhParentWnd=(HWND)lpParam;HWNDhDialog=CreateDialog(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_UPLOAD_DIALOG),hParentWnd,DialogProc);ShowWindow(hDialog,SW_SHOW);for(inti=0;i......
  • 无涯教程-MFC - Bitmap Button函数
    位图按钮在其脸上显示图片或图片和文本,这通常是为了使按钮略显,使用从CButton派生的CBitmapButton类创建位图按钮。这是CBitmapButton类中的方法的列表。Sr.No.Name&描述1AutoLoad将对话框中的按钮与CBitmapButton类的对象相关联,按名称加载位图,并调整按钮的大小以适合位......
  • 无涯教程-MFC - 库资源
    库是一组功能,类或其他资源,可用于需要已经实现的实体的程序,而无需了解这些功能,类或资源是如何创建的或如何创建的功能,库使程序员可以轻松地使用由另一个人或公司创建的函数,类和资源等,并相信此外部源是可靠且高效的。库分为两大类-静态库动态库静态库静态库是一个文件,其中包含......
  • 无涯教程-MFC - GDI
    Windows提供了在设备上下文中使用的各种绘图工具,它提供了用于绘制线条的笔,用于填充内部的画笔以及用于绘制文本的字体,MFC提供了等效于Windows中绘图工具的图形对象类。Drawing绘制设备上下文是Windows数据结构,其中包含有关设备(例如显示器或打印机)的图形属性的信息。所有绘图......
  • 无涯教程-MFC - 网络编程
    Microsoft提供了许多用于对客户端和服务器应用程序进行编程的API,正在为互联网编写许多新应用程序,并且随着技术,浏览器功能和安全选项的变化,将编写新类型的应用程序。MFC提供了一个CSocket类,用于使用WindowsSockets编写网络通信程序。这是CSocket类中方法的列表。Sr.No.Name......
  • MyBatis-Plus 自定义 TypeHandler 映射JSON类型为List
    1在mysql5.7支持json类型,那么在表实体是怎么运用的在mybatis-plus中有相关的handler/***Jackson实现JSON字段类型处理器**@authorhubin*@since2019-08-25*/@Slf4j@MappedTypes({Object.class})@MappedJdbcTypes(JdbcType.VARCHAR)publicclassJackso......
  • 无涯教程-MFC - 文件系统
    在本章中,无涯教程将讨论文件系统的各个组成部分。Drives驱动驱动器是连接到计算机的物理设备,因此它可以存储信息,逻辑磁盘,逻辑卷或虚拟磁盘(简称VD或vdisk)是一种虚拟设备,可在计算机系统中的一个或多个物理磁盘驱动器上提供可用存储区域。驱动器可以是硬盘,CDROM,DVDROM,闪存(USB......
  • 无涯教程-MFC - 消息和事件
    应用程序由各种对象组成,大多数情况下,计算机上运行着多个应用程序,并且不断要求操作系统执行一些任务。Map消息由于Windows是面向消息的操作系统,因此Windows环境的大部分编程都涉及消息处理,每一个事件,例如一个键盘或鼠标点击发生时,一个消息被发送到该应用程序,然后必须处理该事件......