锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 学员作品 / 高中生刘学员的IP管理小练习
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

在学习了一段时间MFC之后我开始写IM练习,在写过之后让我有了很大的提升,同时也认识到了自己很多的不足。在写之前,我首先观看了考勤的视频代码详细讲解,看了一部分之后开始写我个人的IM代码,写的过程中遇到了很多的难题,也犯了很多错误,但整体的思路还是有的。
我把整个IM分为几个子功能块来写,这样一来思路就比较清晰了,写的时候也不会混乱。

整体功能描述

对于一个最小型的表的信息管理,添加、删除、修改和查询。锻炼基本的界面设计、对话框互相调用、Access数据库的使用、MFC数据库相关类的使用和SQL语句的使用。

数据库设计

首先是创建表,保存路径,在保存路径的时候不能保存的太深,否则在创建数据源时关联表会出现路径非法的错误。接着要创建一个MFC工程,选择dialog base,然后直接生成。
表的字段有:ID,NAME。
ODBC里要配置的数据源是:IM
表的名称是:TYPE。

添加子系统

界面设计

在资源视图里添加新对话框,上面放置控件:Edit,Button。

功能设计

这个对话框的目的是采集添加用的新数据。Edit里是让输入新数据的,OK按钮更新对话框上的数据成员,判断Edit输入字符串是否为空关闭对话框。

加入主界面使用

在主界面上放置一个BUTTON控件,命名为类型添加。再在消息响应函数中用DOMODAL函数来调用子对话框。

具体编写流程

1、新建一个dialog,创建类命名为:添加对话框,并指定变量。
2、在OK按钮中写入代码:更新数据,判断输入字符串是否为空。
3、在头文件中声明添加对话框类,声明数据库变量,并扩大这个变量的作用范围。
4、写添加按钮的消息响应函数。

删除子系统

界面设计

在资源视图里添加新对话框,上面放置控件:STATIC,LIST CONTORLS,BUTTON。

功能设计

这个对话框的目的是删除数据和显示数据,STATIC是为了做提示作用,LIST CONTORLS是用来显示数据的,BUTTON按钮是为了存放删除的消息响应函数的。

加入主界面使用

在主界面上放置一个BUTTON控件,命名为类型删除。再在消息响应函数中用DOMODAL函数来调用子对话框。

具体编写流程

1、新建一个dialog,创建类命名为:删除对话框,并为LIST CONTORLS指定变量。
2、添加一个INITDIALOG,声明头文件,写入显示的代码。
3、写删除按钮的消息响应函数:得到第一个被选择的ITEM的位置,遍历所有被选ITEM,删除,复制显示的代码。

修改子系统

界面设计

利用删除的对话框,上面放置控件:BUTTON

功能设计

增加修改功能,BUTTON按钮是为了存放修改的消息响应函数的。

加入主界面使用

利用删除的BUTTON按钮进入界面。

具体编写流程

1、添加一个修改的BOOL型标记,并把它设定为FALSE。
2、添加一个INITDIALOG,写入判断数据的代码,并把数据更新到界面。
3、添加一个修改的BUTTON,然后写入代码,获得ID和NAME 。
4、用添加对话框的对象调用DOMODAL。
5、修改数据并更新。
6、显示的代码。

修改子系统

加入主界面使用

添加三个STATIC,其中两个做为提示作用,另外一个绑定成NAME的变量,再添加一个EDIT控件,并绑定变量为ID。写入E消息响应函数函数。

具体编写流程

响应EDIT控件的函数:更新数据,构造一个数据集,设置过滤条件,判断检索的ID是否存在,更新数据到界面。

总结

在写IM的时候遇到了很多问题,比如经常忘记添加头文件,忘记添加DATEBASE,在写子功能块的代码时总是没有头绪,不知道应该要用哪些函数,对各个函数的作用不熟悉。还好,在大的框架方面没有迷惑,在细节方面(函数的调用和各个函数作用,代码的衔接)还要更多的进步。

在写完代码检测时遇到了几个错误:

  1. 在删除对话框里,可以进行修改操作。在修改过一行记录时,保存后会让显示的ListCtrl里第一行变为空。

认真查代码后,发现代码错误如下:修改部分的代码中写实现显示功能的代码有错误,经过调试,发现是因为insertitem第一个参数没有写正确。

  1. 在主对话框上,有一个基本的查找功能,在Edit里输入ID,会查到对应的名称,并显示在一个Static里。在向Edit输入时,内容变为空时,会出出现一个错误提示:SELECT语句错误。这是因为用strFilter设置过滤条件,在删除完字符之后相当于把过滤条件里=号右边设为空。而过滤条件=号右边是不能为空的,这就需要判断字符串为空时返回。
  2. 同上错误里,如果向Edit里输入非数字字母,查询会出现一个错误提示,这是因为ID值必须是数字,非数字字母转换到数字是不可能的。解决这个错误,需要用CString类的GetAt函数来获得输入的新字符。判断新字符是不是数字字母,如果不是,则不保留。同时,为了方便在出错情况下的后续输入,用CEdit的SetSel函数设置插入符的位置到最后。设置语句如下:
m_myEdit.SetSel(m_sID.GetLength(),m_sID.GetLength(),TRUE);//设置插入符位置
友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内