当前课程知识点:VC++面向对象与可视化程序设计(下):MFC编程基础 > 第11章 > 例11-4 > 例11-4
返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频课程列表
返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频列表
下面我们再介绍一个功能
在上面例子的基础上增加浏览记录的功能
和对记录进行排序
这样我们添加一个对话框
插入一个对话框
然后为对话框添加一个类
这个类的名字叫CMoveToRecord
这时候,大家看到,在这儿,这就是我添加的
添加的类在这儿,CMoveToRecord
这里的定义都在这儿了
对话框里面给他做一些设计
比如说,这里有这么一个内容
要求移动到记录
因为我们要在对话框里面输入要移动的记录
所以,移动到记录
既然移动到记录
就得有输入记录的地方
所以这里加一个编辑框
由于编辑框里面要输入数据
所以给他定义一个ID
和连接一个变量
ID值可以给他叫做IDC_RECORD_ID
这里输入ID值之后移动到那一条ID的记录里头去
所以要给他连接一个变量
因为要接收ID输入值
这是一个值
而且是一个long类型的
变量名叫m_RecordID
请大家注意一个问题
在我们set这个地方
因为系统定义了ID
ID值是long类型的
所以刚才添加的变量如果不是long类型的
它无法识别
然后我们再把这个ID改成IDD_MOVE_RECORD
界面再调整一下
我们为这个编辑框连接的变量叫做m_RecordID
访问的类型大家看一下
是public的访问类型
我们紧接着要在主菜单记录菜单里
增加一个菜单项
叫做“移动到某一条记录”
也就是说通过这个菜单项调出那个对话框
所以要为这个菜单项设一个ID
叫做ID_MOVEToRecord
移动到某一条记录,我们添加一个Command消息
是视图里面的
叫做OnMovetorecord
也就是在视图里面对应了一个对话框的操作
这样的话OnMovetorecord构架就生成了
由于是在视图中响应了对话框的操作
所以我们要在视图里面能够调用对话框
所以我们要在视图的cpp里面嵌入一个对话框的定义头文件
否则是不能操作的
在工具栏里面我们仍然可以增加一个
移动到某一条记录的那么一个按钮
我们给他叫做Move按钮
比如在上面给他写一个M就是Move
这时候他ID的值必须跟前面我们定义的ID_MOVEToRecord是一致的
否则没法操作
我们选这个ID_MOVEToRecord
那么跟菜单项的操作就一致起来了
我们下面要做的事情就是响应这个MOVEToRecord函数
首先我们定义一个CMoveToRecord对象实例
然后在实例里面获取对话框的消息
如果是IDOK
也就说在这个对话框里面获取了IDOK
这个“确定”按钮
然后我们就获得指向数据库的指针pSet
然后指向它的SetAbsolutePosition
指向绝对位置
然后获取它的绝对位置的ID值
最后表单更新就显示出来了
绝对位置要注意的一个问题
我们的ID值是相对位置的值
因为ID是从1开始以1为步长递增 1,2,3……
但是我们在测试程序的时候
已经把部分记录删除了
如果原来把第3号记录删除
第5号记录删除
由于删除了第3号记录
第4号记录就成了绝对位置的第3号记录
如果这时候原来第5号记录删除了
那么第6号记录就成了绝对位置的第4号记录
基于这个道理,我们执行程序的时候
如果这个时候我们要求移到某条记录
移到第2,出来的是3
因为以前已经删除掉一个了
这个问题大家在这里要注意一下
然后我们再继续在原来的基础上再做一些事情
我们原来要求Crecordset类的对象或者从Crecord类继承的对象都拥有一个m_strSort成员
因为刚刚根据我们的题目要求
对记录进行排序
所以我们下面考虑排序功能
我们可以利用Crecordset类的对象
或者它继承的对象
当中的m_strSort成员来进行排序的操作
我们在菜单里面增加一个菜单项叫按价格排序
我们看一下,在菜单记录里面增加一个菜单项
叫做“按价格排序”
同样我们给他连接一个ID
叫SORT_PRICE
给它响应一个功能函数叫OnSortPrice
在这里我们编写它这个代码
这代码非常简单
我们代码是这样的
首先我们必须把原来的数据库关闭
不能处于操作状态
然后我们用m_strSort给它指定价格
我们字段里面有一个“价格”字段
这时候再次打开数据库
这时候打开的数据库,一定是根据“价格”排序好的数据库
所以很简单,只要把这个价格赋给m_strSort
它自动就能够完成
那么我们运行一下
这时候按“价格”排序
这个时候我们一条一条
大家看到价格的变化就行了
价格是递增的
我们按“价格”排序的功能就介绍到这里
-讨论实录
--0-0
-6-1 MFC概述
-6-2 C++的基本知识
--6-2-1 类
--6-2-2 对象
--6-2-6 重载
--6-2-9 指针
-6-3 MFC类的组织结构及主要的类的简介
--6-3-2 根类
-6-4 MFC中全局函数和全局变量
-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-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-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-1 利用音频函数实现多媒体程序设计
--10-1-1
--10-1-2
--10-1-3
--10-1-4
-10-2 利用Windows Media Player控件实现多媒体程序设计
--10-2
-课堂示例源代码
--html
-例11-1
--例1
-例11-2
--例11-2
-例11-3
--例11-3
-例11-4
--例11-4
-11-1 ODBC介绍与引用
--11-1
-课堂示例源代码
--html
-第三次作业及答题链接