有界面的MFC项目
1、设计内容
以学生成绩管理系统为例,通过对简单应用软件系统的设计,编制、调试,实现简单的增加、删除、排序等运算,以学习应用MFC库类编写对话框的原理,加深对C++类的学习及应用。
2、设计说明
(1)包含的功能有:查看、增加、删除、排序、筛选等功能。 (2)通过access创建数据库并通过OD方式访问数据库。
(3)编辑界面上的不同按钮,创建消息映射,以完成相关的各种操作。
3、设计步骤
(1)创建数据库: 打开access,并创建一个新表“学生成绩管理表”,输入相关内容,选择类型,完成后保存。
(2)添加ODBC数据源
打开“ODBC数据源管理器” 添加
继续
21
(3)在MFC中创建相关按键并设置好属性及ID
为每个编辑框控件绑定数据源字段:选定一个编辑框控件,右键 | 建立类向导 | 成员变量标签 |class name列表下选CmySet(数据库的结果集)。 先将Member中不好记的值通过“Delete Variable”删除,再“Add Vairiables”添加,改为自己好记的的名字。
22
将编辑框(在CmyView视图类中)与上述变量绑定:Add Variable…
现在为功能键的实现进行操作 增加新的对话框(窗体)及创建类成员
在查询或过滤记录时,需要一个对话框,用于添加信息,增加对话框的方法: VC主菜单,“插入”|“资源”|“对话框(Dialog)类型”| 放一个“分组框控件”| 在分组框内按图设置编辑框和按钮:
建立类向导,分配好成员变量并绑定好
23
为其中的“确定”按钮添加代码: void CDlgADD::OnOK() {
// TODO: Add extra validation here UpdateData();
if(m_id==0||m_name==\sum==0) {
MessageBox(\请完整输入数据\ return; }
CDialog::OnOK(); }
同理,添加查询条件的对话框:
24
建立类向导
添加功能键的代码:
双击向导中的“IDD_MY_FORM”,双击主界面的“增加记录”按钮 void CMyView::OnButton1Add() {
// TODO: Add your control notification handler code here CDlgADD DlgAdd;
if(DlgAdd.DoModal()==IDOK) { m_pSet->AddNew(); m_pSet->m_id=DlgAdd.m_id; m_pSet->m_name=DlgAdd.m_name;
m_pSet->m_chinese=DlgAdd.m_chinese; m_pSet->m_math=DlgAdd.m_math;
m_pSet->m_english=DlgAdd.m_english; m_pSet->m_sum=DlgAdd.m_sum;
m_pSet->Update();//更新记录集 m_pSet->Requery();//重新提取数据
m_pSet->MoveLast();//移动下一条记录 UpdateData(FALSE); //更新视图 } }
此时需要在“学生信息管理系统View.cpp”中添加头文件“#include \” “删除记录”按钮:
void CMyView::OnButtonDelete() {
// TODO: Add your control notification handler code here try {
m_pSet->Delete(); m_pSet->MoveNext(); if (m_pSet->IsEOF()) m_pSet->MoveLast(); if (m_pSet->IsBOF())
m_pSet->SetFieldNull(NULL); UpdateData(FALSE); }
25