上一篇:MFC界面编程基础(12):组框、单选按钮和复选框 下一篇:MFC界面编程基础(14):滚动条

列表框和组合框

列表框是CListBox类的对象,组合框是CComboBox的对象。

列表框

  • 属性设置
    列表框的重要属性有:
  • Selection
    该属性决定用户的选择方式,缺省值为 Single 。属性值有:
    ①:Single ── 单项选择
    ②:Multiple ── 多项选择,但是忽略 Ctrl 和 Alt 键。
    ③:Extended ── 允许使用 Ctrl 和 Alt 进行多项选择
    ④:None ── 禁止选择
  • Sort
    当该属性被设置为True后,列表框中的选项按字母顺序排列。
  • 常用成员函数
  • 添加项目
    格式: int AddString( LPCTSTR lpszItem );
    例如:语句 m_l. AddString(" 陈蓉 ") ; 把“陈蓉”添加到了列表框 m_l 中。
  • 删除项目
    格式: int DeleteString( UINT nIndex );
    说明: nIndex 表示被删除项目在列表框中的位置,对于第一个选项nIndex应为 0 。
    例如:语句 m_l. DeleteString (4) ;删除列表框中的第 5 个项目。
  • 获取当前被选定的项目的序号
    格式: int GetCurSel( ) const;
    例如:语句int I=m_l.GetCurSel(); 将使I 获得 m_l 列表框中当前选定的项目的序号。
  • 获取列表框中指定的项目
    格式 1 : int GetText( int nIndex, LPTSTR lpszBuffer ) const;
    格式 2 : void GetText( int nIndex, CString& rString ) const;
    说明 :将列表框中第 nIndex 个选项的文本送到 lpszBuffer 或 rString 中。
    例如:假定有说明语句 char s1[20]; CString s2;则语句 m_l.GetText(4, s1); 和 m_l. GetText(4, s2); 把第 5 项内容分别送到 s1 和 s2 中。

【例】

编写一个能对列表框进行项目添加、修改和删除操作的应用程序,如图所示。“添加”按钮的功能是将文本框中的内容添加到列表框,“删除”按钮的功能是删除列表框中选定的选项。如果要修改列表框,则首先选定选项,然后单击“修改”按钮,所选的选项显示在文本框中,当在文本框中修改完之后再单击“修改确定”按钮更新列表框。

  • 界面设计
    首先创建一个对话框应用程序框架,然后放置按钮。列表框和命令按钮按表连接变量,其余控件不需要连接变量。
  • 初始化
    列表框的选项在对话框的初始化函数中用 AddString 函数添加。
BOOL CTESTDlg::OnInitDialog()
{ ┆ // TODO: Add extra initialization here m_l.AddString(" 大学计算机基础 "); m_l.AddString("C/C++ 程序设计 "); m_l.AddString("VB 程序设计 "); m_l.AddString(" 软件技术基础 "); ┆
}
  • 消息处理函数
…………………………………………………………
void CTESTDlg::OnButton1() // 选择“添加”后执行的函数
{ // TODO: Add your control notification handler code here UpdateData(TRUE); m_l.AddString(m_e); m_e=""; UpdateData(FALSE);
}
…………………………………………………………
void CTESTDlg::OnButton2() // 选择“删除”后执行的函数
{ // TODO: Add your control notification handler code here int n=m_l.GetCurSel(); m_l.DeleteString(n);
}
…………………………………………………………
void CTESTDlg::OnButton3() // 选择“修改”后执行的函数
{ // 将选定的项目送编辑框供修改 // TODO: Add your control notification handler code here CString s; int n=m_l.GetCurSel(); m_l.GetText(n,s); m_e=s; UpdateData(FALSE);
}
…………………………………………………………
void CTESTDlg::OnButton4() // 选择“确定修改”后执行的函数
{ // 将修改后的项目送回列表框中,替换原项目,实现修改。 // TODO: Add your control notification handler code here UpdateData(TRUE); int n=m_l.GetCurSel(); m_l.DeleteString(n); m_l.InsertString(n,m_e); m_e=""; UpdateData(FALSE);
}
…………………………………………………………

组合框

  • 属性设置

  • 种类( Type )
    该属性用于指定组合框的类型,共有三个选择: Simple 、 Dropdown 和 Droplist ,默认值为 Dropdown 。

  • 键入列表框项( Enter listbox items )
    在列表框的属性窗口有一个“ Data ”属性,这是在设计阶段输入选项的地方,如图所示。输入每一项都需要用分号分隔

  • 常用成员函数
    编辑框和列表框的成员函数几乎都可以用于组合框,但是列表框的成员函数 GetText() 在组合框中的是 GetLBText()

  • int GetLBText( int nIndex, LPTSTR lpszText ) const;

  • void GetLBText( int nIndex, CString& rString ) const;
    说明 :使用 GetLBText 函数可以将组合框中的第 nIndex 个项目的文本送入 lpszText 或 rString 中。

  • 组合框发出的消息

  • CBN_SELECTCHANGE :组合框的列表框中的选项改变时发送

  • CBN_EDITCHANGE :组合框的编辑框中文本改变时发出

【例】

设计一个如图所示的对话框。如果单击“确定”按钮,则用 MessageBox 显示如图所示的信息框。

  • 首先创建一个对话框程序框架,然后放置各控件,进行属性设置,组合框的选项在设计阶段直接输入,按表连接变量,其余控件不需要连接变量。

  • 消息处理函数
void CTESTDlg::OnButton1()
{ // TODO: Add your control notification handler code here UpdateData(TRUE); CString s; s=" 品牌 :"; s=s+m_c; s=s+"\n"; s=s+" 数量 :"; s=s+m_e; MessageBox(s);
}
上一篇:MFC界面编程基础(12):组框、单选按钮和复选框 下一篇:MFC界面编程基础(14):滚动条

MFC界面编程基础(13):列表框和组合框相关推荐

  1. MFC界面编程基础(14):滚动条

    上一篇:MFC界面编程基础(13):列表框和组合框 下一篇:MFC界面编程基础(15):程序举例+屏蔽或接收键盘事件 滚动条是 CScrollBar 类的对象,是 Windows 应用程序中一个很重要 ...

  2. MFC界面编程基础(08):菜单(一)

    上一篇:MFC界面编程基础(07):文本编程 下一篇:MFC界面编程基础(09):菜单(二) 菜单栏.工具栏和状态栏是组成Windows程序图形界面的三个主要元素.大多数Windows程序都提供了菜单 ...

  3. MFC界面编程基础(00):基本概念

    下一篇:MFC界面编程基础(01):Windows 编程模型 MFC:微软基础类库(英语:Microsoft Foundation Classes,简称MFC) 如果你是在windows平台上做GUI ...

  4. [.net 面向对象编程基础] (13) 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性--多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  5. GUI编程基础学习(三)——单选按钮、复选框、组合框

    单选按钮JRadioButton JRadioButton组件用于实现一个单选按钮.JRadioButton类可以单独使用,也可以与ButtonGroup类联合使用,当其单独使用时,该单选按钮可以被选 ...

  6. 列表框和组合框的使用

    列表框是显示一系列项供用户选择的控件,对选中的项可以进行后续的处理.用户选择可以是多项的,但本章的例程设计为单选的.组合框是一个编辑框带一个可以下拉的列表框,用户在下拉框中选择的项会进入编辑框中,再进 ...

  7. 图形界面 XI: 表格单元中的文本编辑框和组合框 (统合构建15)

    内容 概述 调整窗口大小 表格单元中的文本框和组合框 应用测试 结束语 概述 首篇文章 图形界面 I: 函数库结构的准备 (第 1 章) 详细研究了这个函数库.每篇文章的末尾, 附加了当前开发阶段的完 ...

  8. html 选择列表框,列表框和组合框的区别是什么?

    列表框和组合框的区别 1.自动排序方式不同: 当列表框不能同时显示所有项目的时候,将自动添加滚动条,使用户可以滚动查阅所有选项.组合框的风格取值定义了组合框的具体属性,包括是否自动排序,是否有滚动条. ...

  9. java pdf表单域实现_Java 创建PDF表单域 - 文本框、复选框、列表框、组合框、按钮等...

    表单域包括文本框.复选框.列表框.组合框.按钮和签名域等,主要用于收集用户填写或选择的数据.这篇文章将介绍如何在Java应用程序中给PDF文档添加表单域. 导入jar文件 本文所使用的PDF类库是Fr ...

最新文章

  1. R语言ggplot2可视化:箱图(box plot)可视化并且在为箱图的异常值(outlier)添加数据标签
  2. 【数字信号处理】相关函数 ( 能量信号 | 能量信号的互相关函数 | 能量信号的自相关函数 )
  3. 老男孩老师的博客地址 - 转自devops1992
  4. ECCV 2020 | 史上最强二值化网络ReActNet,精度首超ResNet
  5. 机器学习实战第15章pegasos算法原理剖析以及伪代码和算法的对应关系
  6. 什么情况下会调用到session_destroy()
  7. unzip不能解压mysql的zip_Linux中zip压缩和unzip解压缩命令详解
  8. oracle分页查询加总数,oracle count 百万级 分页查询记要总数、总条数优化
  9. 解决 mysql 树形结构插入数据查询死循环问题
  10. es6 ArrayBuffer对象
  11. Mac终端编c语言,【新手提问】有知道用mac终端编c语言的网络编程的人吗?
  12. java数青蛙_『字节跳动LeetCode联合周赛』--周赛185(JavaScript) | OFEII
  13. Oracle 当前用户给另一个用户授权查询指定表或视图的权,否则另一个用户提示不存在视图或表
  14. 测一下markdown之第一篇博文
  15. Python 小节案例-计算体脂率
  16. 计算机怎么建我的文档,如何修改我的文档路径
  17. 瓷砖铺贴方法_12种最好看的瓷砖铺贴方式!
  18. android touch事件无反应,触摸屏 无响应
  19. bzoj4695 最佳女选手
  20. 2021-2-18:请你说说MySQL的字符集与排序规则对开发有哪些影响?

热门文章

  1. 关于Android 版本向下兼容
  2. 解压zip、rar、gz格式文件
  3. Saving Files
  4. SQL从中文中获取拼音首字母
  5. dns使用tcp/53端口
  6. 电子指南针Arduino笔记四电子指南针罗盘HMC5883L
  7. linux 运行asf云挂卡,linux 服务器配置 ASF 云挂卡
  8. tomcat中ajp及8009端口用处
  9. 荔枝zero linux环境搭建,荔枝派zero从焊接到跑起linux
  10. 中国移动投资1800亿,打造5G+资本生态圈