当前课程知识点:VC++面向对象与可视化程序设计(下):MFC编程基础 >  第7章 Windows标准控件在可视化编程中的应用 >  7-7 组合框控件 >  7-7

返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频课程列表

7-7在线视频

7-7

下一节:7-8-1

返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频列表

7-7课程教案、知识点、字幕

下面我们一起来学习组合框控件

组合框(ComboBox)它的支持的类是CComboBox类

组合框实际上是两种预定义窗口的组合形式

在Windows编程中使用单一控件

往往不能很好满足与用户交互的需要

最常见的组合框例子是

对话框及与其相联系的静态文本和编辑框

组合框与应用程序间消息传递

也是通过向其父窗口发送COMMAND消息

通知应用程序的交互信息

组合框常见的样式有

DROPDOWN说明组合框是由列表框和编辑框组成

列表框其实平时并不可见

DROPDOWNLIST是组合框由列表框和静态文本组成

AUTOHSCROLL是编辑框中自动水平滚动

Sort是列表框中各项按字母顺序排序

组合框通过向它的父窗口发送COMMAND消息

通知应用程序用户的交互信息

它的消息字参数的低字节为控件标识

高字节为标识组合框动作的消息通知码

通知码主要有这些

比如说SELCHANGE

这是组合框中列表框部分所选中项发生变化

比如说DBLCLK这是双击

以及组合框的SETFOCUS和KILLFOCUS

设置它的收到输入焦点和失去输入焦点

以及EDITCHANGE

组合框中的编辑框中的文本发生变化

EDITUPDATE是组合框中的编辑框

将显示修改过的文本

DROPDOWN是组合框中的列表框下拉

CLOSEUP是组合框中的列表框隐藏

应用程序向组合框发送消息

也可以使用SendMessage和SendDlgItemMessage来完成

这里的消息我就不细说了

大家可以查询我们的教材内容

也可以查询MSDN的内容

这里的消息我简要地介绍几个

比如说ADDSTRING是在列表框中加入新的项

DELETESTRING是在列表框中删除新项

INSERTSTRING是在列表框中插入一个新的项

这个INSERTSTRING和ADDSTRING都是加入

有什么区别呢

INSERT可以在列表框中任何位置加入

而ADD是在列表框最后一个位置加入

FINDSTRING是在列表框中查询列表项

DIR是在列表框中显示指定的目录和文件

这个SETCURSEL

CUR是Current的缩写

SEL是Selection的缩写

是设置列表框中的选中项

有Set就有Get

这是GETCURSEL获取选中项

GETCOUNT是获取列表框中项的数目

LIMITEXT是限制编辑框中字符串的长度

下面我们通过一个例子向大家介绍组合框控件的使用

这个例子是这样的

我们要求创建一个组合框

当单击向下按钮的时候

显示可选文件的名字

我们如果选中当中的某一项

比如说我们选中Saturday

这时候就有一个对话框告诉我们

选中的是Saturday

就是显示该项的名称

我们看这个是怎样完成的

我们创建一个工程文件

我们的文件比如说叫7_7

好,我们叫7_7

然后把系统生成的东西都不要了

这个时候我们是要将组合框ComboBox放到对话框上

然后把它放大一些

我们要把它的Sort风格取消掉

因为刚才大家看的例子里面

这里面并不是按照字母顺序排的

因为我们去掉了Sort风格

然后我们为ComboBox连接一个变量

叫m_cb

m_cb实际上就是ComboBox

就是这个意思

为什么要连接变量

因为当我们单击向下箭头的时候

要显示一些内容

所以我们要连接这样一个变量

当连接了变量之后

也就是说当程序运行的时候

系统就马上显示了可供选择的选项

这些可供选择的选项是在哪里定义的呢

是在初始化函数里定义的

是在OnInitDialog里定义的

我们在OnInitDialog里面增加一部分代码

这个m_cb大家知道就是ComboBox

因为我们刚才定义了一个变量

那么它就可以执行ComboBox类里面的成员函数

成员函数中我们简单用AddString一个一个往上面加

星期一星期二一直加到星期天

实际上这个时候就是对ComboBox进行了初始化

假设我们现在运行一下程序

好了 编译成功

我们运行一下

单击向下箭头

显示的内容就是我们这里设置的内容

那么这个时候它这里的显示

比如说我选上了某一项Saturday

要求这里有一个对话框显示

但是这里对话框并没有显示出来

因为我们的工作还需要进一步的完成

由于我们选择的内容

比如说选择了星期六

它有一个消息框会显示

这个时候我们就要给它进行一个消息处理

我们给它添加一个事件处理程序

选择SELCHANGE这个消息

系统给我们建立了一个函数处理程序的名称

我们直接使用它就可以了

这是我们进入函数编辑状态

我们添加的代码基本都是在TODO下面

TODO下面的代码基本没有

如果有的话是系统自动生成的

我们不用去管它

这时我们定义一个CString的变量msg

然后由于我们选择了ComboBox里面的某一项

所以我们调用m_cb

也就是刚才为ComboBox对象连接的变量

然后调用它的成员函数Get List Box,即GetLBText

我们要把里面的文本全部获取

所以是GetCurSel

然后把当前选择的内容赋给msg字符串

所以GetLBText函数的功能就是

把ComboBox里面当前的选项作为一个字符串赋给msg

然后通过AfxMessageBox将msg的字符串显示出来

这时我们再编译一下

我们仍然选择星期六

就可以显示出来

刚才没有做这个工作的时候

选择后是没有显示对话框的

这个应用程序我们就介绍到这儿

VC++面向对象与可视化程序设计(下):MFC编程基础课程列表:

第0章 课前讨论

-讨论实录

--0-0

第6章 MFC基础知识

-6-1 MFC概述

--6-1 MFC基础知识

-6-2 C++的基本知识

--6-2-1 类

--6-2-2 对象

--6-2-3 类的方法

--6-2-4 内联函数

--6-2-5 构造函数和析构函数

--6-2-6 重载

--6-2-7 友元函数

--6-2-8 友元类

--6-2-9 指针

--6-2-10 类的继承

--6-2-11 多态性和虚拟函数

-6-3 MFC类的组织结构及主要的类的简介

--6-3-1 MFC类的组织结构

--6-3-2 根类

--6-3-3 应用程序结构类

--6-3-4 可视对象类

--6-3-5 通用类

--6-3-6 OLE类

--6-3-7 ODBC数据库

-6-4 MFC中全局函数和全局变量

--6-4 MFC中全局函数和全局变量

第7章 Windows标准控件在可视化编程中的应用

-7-1 概述

--7-1-1

--7-1-2

-7-2 按钮控件及其应用

--128B12447816EEF99C33DC5901307461

-7-3 按钮控件及其应用

--7-3

-7-4 静态控件

--7-4

-7-5 列表框控件

--7-5-1

--7-5-2

-7-6 编辑框控件

--7-6

-7-7 组合框控件

--7-7

-7-8 对话框通用控件

--7-8-1

--7-8-2

-讲义源代码

--html

第8章 在MFC中创建应用程序的资源

-8-1&2 资源的应用以及菜单资源的使用

--8-1-1

--8-1-2

-8-3 快捷菜单的创建及其应用

--8-3

-8-4 加速键资源的创建及其使用

--8-4

-8-5 工具条资源的创建及其使用

--8-5

-8-6 字符串资源的使用

--8-6

-8-7 位图资源的创建及其使用

--8-7

-课堂示例源代码

--html

-第一次作业内容及要求

--html

--第一次作业及答题链接--作业

第9章 单文档与多文档

-9-1 概述

--9-1

-9-2 Doc/View框架的主要成员

--Video

-9-3 文档操作中的一些重要概念

--Video

-9-4 SDI编程实例

--Video

-9-5 MDI编程实例

--9-5-1

--9-5-2

-课堂示例源代码

--html

-第二次作业内容及要求

--html

--第二次作业及答题链接--作业

第10章 多媒体应用程序的设计

-10-1 利用音频函数实现多媒体程序设计

--10-1-1

--10-1-2

--10-1-3

--10-1-4

-10-2 利用Windows Media Player控件实现多媒体程序设计

--10-2

-课堂示例源代码

--html

第11章

-例11-1

--例1

-例11-2

--例11-2

-例11-3

--例11-3

-例11-4

--例11-4

-11-1 ODBC介绍与引用

--11-1

-课堂示例源代码

--html

第三次作业及答题链接

-第三次作业及答题链接

7-7笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。