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

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

7-8-1在线视频

7-8-1

下一节:7-8-2

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

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

下面给大家介绍对话框的通用控件

大部分控件都是在对话框中使用的

无论是基于对话框的应用程序

还是文档/视图结构的应用程序

这时候大家接触到一个新的概念

文档/视图结构 Doc/View

这就是我们后续要讲的单文档、多文档操作的内容

控件通常是放在对话框当中

这节我们将介绍各种Windows通用控件的使用

首先我们介绍的是Picture控件的使用

我们可以把Picture控件当作一个分割线

我们看看怎么用

我们建立一个7_9的应用程序

基于对话框的应用程序

我们创建了这样一个应用程序

然后我们将Picture控件拉过来

在这个控件里面有一个Type属性

这个时候我们把它的Type属性

原来是Frame

我们选择Frame属性

颜色Color

Color我们选择Etched

然后我们把原来的框架拖到最长

颜色原来是Black

大家可以看来原来Black的颜色是这样的

我们变成Etched

有变化

大家仔细看有变化

然后拉到最细

这时候Picture控件看起来就是一根细线

这个我们可以给它当做分割线来使用

我们拖放一个Picture控件

给它拖放过来

那么Type属性这里面有好几个

我们给它设成Icon

或者用Bitmap也可以

设置Image属性为相应的资源ID

这个时候我们就要做一件什么事情呢?

我们这个时候在资源里面导入一个图

那么我们添加一个资源

资源我们选择的是一个图标

我们就选择图标资源

这个时候我们导入一个图标资源

这个导入图标资源的前提是这个图标文件已经产生

比如说我导入这个图

打开

这个时候我们已经看到了这个图

它会产生一个ID

缺省的ID的话就是IDC_ICON1

我们再回到这个界面上来

大家看到这里产生了一个IDC_ICON1

ICON1就是这张图

然后我们在它的属性里面设置Image属性

Image属性我们就找到IDC_ICON1

大家看图马上就变化了

这时候我们把它编译一下

通过了

我们运行一下

这时候这图标就在这儿

大家就看到了

紧接着我们再做一个例子

在这个基础上我们安放一个Spin控件

这个Spin控件实际上是一对按钮跟一个编辑框

所以Spin按钮控件提供了一个双向的箭头

实际上这个箭头是按钮

用户通过点击箭头可以微调控件所表示的这个值

Spin控件实际上是CSpinButtonCtrl类的一个对象

所以Spin控件通常和Taborder位于它之前的控件成对使用

如果位于它之前这里是一个编辑框

通过CSpinButtonCtrl的GetBuddy方法可以跟它进行匹配

那我们怎么做呢?

我们看一下

这个时候

我们向对话框安放一个编辑框

我现在安放一个编辑框

这个编辑框我设为只读

然后通过一个Spin控件

Spin控件是这个控件

大家看Spin控件实际上只是一个上下的按钮

我们拖放一个Spin控件

放到它的右边,挨着放

这时候它的ID值,这个是Spin1

这个编辑框的ID值是EDIT1

我们都用缺省值

对这个Spin控件,我们设置它的EDIT属性

这里写的是Unattached,就是跟前面没有关联了

我们给它关联上,而且是右关联

然后我们选择Auto Buddy属性,点True

然后操作就会跟左边的编辑框联系起来

这个就是我们刚才说的跟TabOrder位于它之前的对象连接

这个Spin控件之前建立的对象是这个编辑框

所以它就和它连接起来了

这个时候我们要做一件什么事情呢

就是要设置Spin数据的范围和初始值

前面和大家说过

对程序运行已经设置好的内容

它应该是在OnInitDialog函数里面完成

我们先保存一下

回到cpp程序,然后找到OnInitDialog

在TODO这个地方添加我们的代码

我们在这里面

因为后面还要添加很多的代码

为了做一个标识,我们写一个注释行

这里写上Spin说明我下面响应的代码是对Spin进行响应的

因为我们后面还要增加别的控件

所以这里做一个标识

那这个地方我们增加什么内容呢?

我们增加这些内容

这时候我们创建了一个CSpinButtonCtrl的对象

指向这个对象的指针pSpin

那么这个怎么获取呢

是GetDlgItem,为什么是GetDlgItem呢

因为Spin的对象是放到对话框上面的

所以是获取对话框上面的项

哪一个项呢?

Spin1这个项

然后定义了一个指针指向这个项

那么这个指针类型

因为我们GetDlgItem,对话框里面可以放很多对象

所以我们获取这个对象就要强制类型转换成CSpinButtonCtrl类的对象

所以我们定义了指向对象的指针

然后设置Spin上下的范围0到100

SetPos是程序运行显示出来的值是50

然后GetBuddy的SetWindowText值设为5

那么也就是说0到100的范围我们在0到10的范围来显示

所以当缺省的位置50的时候我们设为5

是这样的

这个时候我们运行一下这个程序看能有什么效果

好了,实际上运行的时候大家看这个Spin和编辑框已经合为一体了

但是我现在看到的5是SetWindowText产生的

但是我现在按Spin的上下按钮它的值并不能动

因为这里只是设置了初始状态

还没有对这个Spin进行消息响应

我们要向这个对话框中呢响应一个垂直滚动条消息

因为这个就属于垂直滚动条

所以我们在类向导里面响应一个消息

这个消息是垂直滚动条消息

垂直滚动条消息,我们这个时候要响应这个消息

添加,添加完这里就产生了这个处理程序叫做OnVScroll

然后我们要编辑它的代码

好了这时候系统就出现了一个对话框上面的垂直滚动条消息

在TODO这个地方我们仍然添加它的代码

我们是GetDlgCtrlID

因为是垂直滚动条所以系统这里生成一个滚动条指针

然后滚动条指针里面获取对话框的ID

如果控件ID是IDC_SPIN1

那么就是对这个Spin1进行响应

这时候我们要响应什么值呢

我们定义了一个字符串strValue

然后把当前值除以10

这就是刚才看到的范围是0到100

我们都除以10

也就是说原来这个地方是50的时候

我应该显示的是5,就是这么个道理

这个时候以3.1f的格式放到这个字符串中

然后我们通过CSpinButtonCtrl指向这个控件

GetBuddy,Buddy实际上是左边那个编辑框

因为Spin已经跟左边的编辑框融为一体了

然后设置窗口的值是strValue

strValue就是当前Pos除以10的值

这样的话我们就可以执行了

这时候大家看到我这能动了

对吧,刚开始这个Spin按钮动的时候它的值是不变的,现在它可以变了

就是因为我们进行了

先取了这个Spin对象的ID

然后对它定义了一个字符串变量

然后将当前Pos的位置除以10

然后设置到字符串里面

然后通过字符串显示到编辑框里面

那么大家会说,这里按Spin,它为什么会动

因为这里面设置了垂直滚动条的消息处理

这个是系统自动完成的你不要管了

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-8-1笔记与讨论

也许你还感兴趣的课程:

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