您好,欢迎来到智榕旅游。
搜索
您的当前位置:首页VC++实例 教职工管理系统(毕业设计论文)

VC++实例 教职工管理系统(毕业设计论文)

来源:智榕旅游
用VC++制作一个人事管理系统——教职工管理系统

关键词:VC++应用程序向导 增加对话框资源 ADODC控件 DataGrid控件 对话框切换 2.1 系统设计的目的和意义

人事管理系统是公司或学校或其他的事业单位用来统一管理人员的软件,下面我就一学校的教职工管理系统为例。

学校职工查询是学校管理中需要经常处理的一项工作,我的毕业设计结合一个简化的学校教职工管理系统的制作,介绍如何利用VC++的应用程序向导制作应用程序。该系统的制作涉及一个数据库、两个数据表及其相关的对话框的制作开发,涉及在工程中增加对话框、调用对话框的方法以及应用程序向导的使用方法。最重要的是,在我的毕业设计中,我将介绍一种新的数据源引用方法,即使用ADODC控件引用数据源并制作应用系统的方法。我的毕业设计程序是简单的,但方法是重要的。 2.2 系统功能设计

本系统具有—般系统的数据处理功能,如数据录入、增加、修改、删除等。

2.3 数据库与数据表的设计

本系统将首先创建一个职工信息数据库,并在它之中创建两个数据表,一个是“职工信息数据表”,—个是“职工工资信息表”。在我的毕业设计当中,我仅用Microsoft Access 2003创建教职工管理数据库及其数据表。

2.3.1 利用Microsoft Access 2003创建教职工管理数据库及其数据表

微软公司的许多产品所支持的数据库结构与数据库驱动器类型均是通用的,因此,用户往往可以借助于相关的工具创建数据库与数据表,这里我介绍采用Microsoft Access 2003创建数据库及其数据表的方法。先定义职工信息数据表的结构,如表2.1所示,它专门用于记录教职工的基本情况。

表2.1 职工信息数据表的结构

字段名称 职工编号 职工姓名 职工性别 所在部门 职工年龄 工作时间 职务 职称 简历 字段类型 数字 文本 文本 文本 数字 日期/时间 文本 文本 备注 字段大小 长整型 20 2 30 整型 8 20 20 默认 索引 惟一、主索引 必须填写 是 是 是 是 是 是 是 是 是 职工工资情况表的结构定义如表2.2所示,注意,这是一个简化了的职工工资数据表,因为工资表往往比较复杂,而且不同的单位工资表结构也有所不同.我不可能定义一个“万能”的工资表结构,只能创建一个具有示范意义的工资数据表结构。

表2.2 职工工资数据表的结构 字段名称 职工编号 职工姓名 基本工资 其他工资 月收入 字段类型 数字 文本 数字 数字 数字 字段大小 长整型 20 单精度型 单精度型 单精度型 索引 惟一、主索引 必须填写 是 是 是 是 是

2.3.2 数据库与数据表的创建过程

利用Microsoft Access创建数据序及具数据表的步骤如下:

(1)启动Microsoft Office 2003中的Microsoft Access应用程序,出现如图2.1所示对话框。

图2.1 新建数据库

(2)选择创建一个空数据库。

(3)单击“确定”按钮之后出现保存对话框,确定保存数据库的文件位臵和数据库名称即可,本例中数据库名称为“职工管理数据库”;随后出现图2.2所示界面。

图2.2 数据库中的数据表操作界面

在数据表操作界面小,用户可以打开已经存在的数据表,也可以创建新的数据表。 (4)单击“设计”菜单项即可以设汁一个斯的数据表结构;设计一个新的数据表结构就是通过数据表的设计器设计一个表的字段名称、宇段类型、字段大小、小数位数以及索引

字段等等。图2.3所示是职工信息数据表结构的设计器,采用同样的方法,可以创建职工工资数据表。两个数据表结构一经创建,用户可以打开该数据表,在数据表中输入一些基本数据,以便在后面的系统设计中体现设计的效果。创建的数据库保存在“D:张超的毕业设计\\ 职工管理数据库”中。

2.4 创建职工管理系统应用程序框架

在VC++中创建应用程序往往可以通过向导首先创建一个应用程序的框架,应用程序框架为期户提供了一个基本的开发过程。在这里,首先介绍制作“职工管理系统”程序的基本框架的过程和方法,其过程如下:

(1)启动VC++程序,出现VC++开发平台。

(2)在VC++主菜单中单击“文件新建”菜单项,出现工程类型选择列表。 (3)在“工程”类型选择列表中选择工程类型为“MFC AppWizard (exe)”。 (4)在“工程”编辑框中键入“教职工管理系统”。 (5)在“位臵”列表拒中选样存放的位臵,此处设臵为“D:\\VC++我的毕业设计”。 (6)选择“R创建新工作区”并选择适合于Windows操作系统的Win32平台,如图2.4所示。

图2.4 工程创建的基本配臵

(7)单击“确定”按钮,出现图2.5所示对话框,该对话框用于进行应用程序类型设臵。

图2.5 应用程序类型设臵

(8)选择“基本对话框”,并设臵在资源中使用的语言为“中文[中国]”。 (9)单击“下一步”按钮,出现另一个设臵对话框,即工程特色设臵对话框,如图2.6所示。

图2.6 工程特色设臵

在工程特色设臵对话框中作三项内容选择,即:A关于框符、3D控制、ActiveX控件,并输入标题对话为“教职工管理系统”主界面。

(10)单击“完成”按钮,出现应用程序设臵的全部信息: Application type of 教职工管理系统: //工程类型 Dialog-Based Application targeting: //基本对话框 Win32 //适合于Windows平台 Classes to be created: //创建类

Application: CMyApp in 教职工管理系统.h and 教职工管理系统.cpp Dialog: CMyDlg in教职工管理系统Dlg.h and 教职工管理系统.cpp Features: //特色信息

+ About box on system menu //创建了About对话框 + 3D Controls //支持3D控件

+ Uses shared DLL implementation (MFC42. DLL) //使用动态链接库 + ActiveX Controls support enabled //支持ActiveX控件 + Localizable text in: //工程定位 中文[中国] //资源使用语言

(11)单击“确定”按钮完成应用程序框架的创建,出现应用系统框架,如图2.7所示。

图2.7 应用程序框架显示 在应用系统程序框架中列出了全部的资源文件,用户可以进行资源显示,并可以显示由向导自动创建的各种类文档,这与第一个我的毕业设计所创建的应用程序框架的内容大体一致。

2.5 基本框架的修改

应用程序生成向导往往只能生成一个应用程序的架构,它不能执行任何的事务和系统的功能,需要用户权据自己的需求送行具体的制作,因此我首先对应用程序的基本框架进行修改。 2.5.1 主界面的修改

在采用申文档应用程序类型创建应用系统时,往往向导创建的应用程序框架中的第一个对话柜就是该应用系统的主控界面。主界面可以说是一个应用程序的核心,通过主界面可以调用其他界面。用户可以在主界面中创建主菜单、快捷键面板或快捷菜中等,也可以增加命令按钮,用以对其他界面进行调用。如果是一个简单的应用系统.也可以直接将主界面作为数据管理的界面,直接在主界面中进行控件布局、创建数据源并进行数据访问控件与数据源之间的“数据绑定”。在我的毕业设计中,先对主界面,即对话框作如下修改: (1)删除主界面中的“确定”按钮。(2)删除主界面中的“取消”按钮。(3)删除主界面中的“TODO:在这里设臵对话控制。”静态文本框控件。(4)在界面中放入一个命令控钳控件BUTTON1。(5)用鼠标右键单击命令按钮控件BUTTON1,出现—个快捷菜单。(6)在快捷菜单个选择“属性”菜单项,出现该按钮的属性设肯对话框。(7)将命令按钮BUTTON1的资源索引号ID修改为“IDC_EXIT_BUTTON”。(8)将命令按钮BUTTON1的标题属性设臵为“退出系统”。(9)设臵它的StyIe属性为“坦平”。其属性设臵对话框如图2.8所示。

图2.8 按钮属性设臵

(10)关闭属性设臵对话框,回到程序的主界面。(11)编译运行工程,并单击该按钮,你会发现,它不会执行任何操作,因为我并末对其编制任何的过程代码。 2.5.2 为“退出系统”按钮创建类并增加成员变量

在VC+应用程序中,资源是按类和成员变量进行识别的,因此我需要为资源中的每一个对象创建或声明一个类和相应的成员变量。内于此处该按钮是对话柜中的一个控件,也就是它的一个成员,因此它是对话柜类中的一个控件对象,不用再为它创建一个新类(从图2.9可以看出,它是对话框CMyDIg类中的一个控件,其控件索引号为;IDC_EXIT_BUTION),我只为它创建一个成员变量即可,其过程如下:(1)用鼠标右键单击“退出系统”按钮,出现一个快捷菜单。(2)在快捷菜单中单击“建方类向导”菜单项,出现用于创建类的对话柜,如图2.9所示。

图2.9 创建类

在该对话框中,可以对新的对象创建一个新的类并定义一个成员变量,但此处,我仅将“退出系统”按钮作为对活框的一个成员,因此,只需要为它定义一个成员变量即可。

(3)申击Add VariabIe…按钮,出现成员变量创建对话柜,如图2.10所示。

图2.10 成员变量定义

在为—个对象引入成员变量时,首先应该为它定义一个成员变量名称,然而设臵成员变只所属的类(Category),分为两种:一是控件(Control)类,第二类为值类,即Value类,在列表中系统将会根据对象的类型而自动列出一个供参考选择的列表内容,此处选样Control。另外,还而要设臵变量的类型 (VariabIetype),系统也会根据对象的类型在列表框中列出相应的值,此处选择CButton。(4)单击OK按钮即完成命令按钮的成负变量设臵,随后它会显示在对话框类的成员变量信息列表中,如图2.11所示。

图2.11 对话框类中的成员变量信息

在一个类中有多少个成员,它便显示多少个成员变量的信息.此处,目前只有一个成员在对话框中,因此只有一条信息。值得注意的是,成员变量可以删除,也可以修改并重新进行定义,使成员变量必须是无二义性的,即在一个应用系统中,一个成员的变量是惟一的,不能出现两个成员定义同一成员变量的现象,否则会出现错误信息。

2.5.3 为“退出系统”按钮编制事件的过程代码

“退出系统”技钮的作用就是结束应用程序的执行,关闭应用程序主窗体(对话框),因此我需要给它制作相应的过程代码,其操作步骤如下:(1)将图2.11的选项卡面图切换到消息映肘(Message Maps)近项卡,选择对象索引号ID为IDC_EXIT_BUTTON的项。(2)在选项卡中选择单击事件BN_CLICKED信息(注意,作为一个命令按钮,执行事务的方式有单击和双击两种方式,此处选择单击方式,即BN_CLICKED)。(3)单击Add Functlon…按钮增加该对象的成员函数,出现成员函数名定义,如图2.12所示。

图2.12 成员函数名定义

(4)直接接受系统建议的成员函数名即可。(5)单击OK按钮,完成成员函数的增加。(6)单击Edit Code…按钮,进入命令按钮的事件过程代码编辑需要的过程代码即可,“退出系统”命令拉钮的过程代码如下所示:

void CMyDlg : : OnExitButton () {

/ / 开始编制过程TODO: Add your control notification handler code here OnOK();

/ / 结束代码编制

}

该代码的编辑实际上是在对话框的过程代码文件中的一个“代码体”中进行编辑,在VC++中,一个事务的过程编制往往以一个“代码体”来进行,它以void为过程标识与声明,该标识说明了对象所在的类和对象的函数名称CMyDlg::OnExitButton()。代码体以

{

}表示。注意,在为VC++程序中的成员编制过程代码时,如果用到VC++的内部函数,则对于代码符号是有严格要求的,内部函数的函数名不仅需要区分大小写,而且还必须在英文状态下编写,否则在系统编译时,函数名不会被识别,将出现编译错误编制事件的过程代码之后,可以编译运行工程并检验按钮的功能,它将按设计过程完成结束程序的事务,即关闭对话框。

2.6 为工程增加两个对话框资源

在前面的过程中,我已经通过向导为应用程序生成了一个应用程序框架,并生成了一个系统主控界面对话框IDD_MY_DIALOG和一个IDD_ABOUTBOX对话框成员,但这两个对话框还不能满足我工程设计的需要,在应用系统中我至少需要处理两个数据表的数据,即教职工基本情况数据和教职工工资情况的数据,因此我需要在工程中增加两个对话框资源。 2.6.1 增加对话框资源

(1)单击VC++主菜单中的“插入 | 资源”菜单项,出现一个资源类型选择对话框,如图2.13所示。

图2.13 资源类型选择对话框

(2)在资源类型选择对话框中,选择对话框资源Dialog。(3)单击“新建”按钮,则在工程少增加了一个对话框资源。它的资源索引号ID自动设臵为:IDD_DIALOG1。(4)用相同的方法可以为工程增加另一个对话枢资源IDD_DIALOG2。 2.6.2 为两个新的对话框资源创建新类

(1)在工程的资源管理器中,将页面切换到资源选项卡并双击IDD_D1ALOG1,出现

IDD_DIALOG1对话框。(2)用鼠标右键单击它的空白处,出现一个快捷菜单。(3)在快艇菜单小单东“建立类向导”菜单项,出现图2.14所示对话框。

图2.14 类创建的信息提示对话框

(4)选择Create a new class单选选项,即选择创建一个新类。(5)单击OK按钮,出现类名设冒对话框,在类名设臵对话框中设臵该对话框的类名称为CMyDlg1,并作如下选择:

File Name: MyDlg1.cpp //类文件名 Base Class: Cdialog //所属基类 Dialog ID: IDD_DIALOG1 //资源索引号 Automation: None //处理自动化 其选择如图2.15所示。

(6)单击OK按钮结束类的创建。这样我就为新增加的对话框资源DIALOG1创建了一个新的类,其类名为CMyDlg1。

用同样的方法为对话柜资源IDD_DIALOG2创建一个新类:CMyDlg2,这样在工程中就增加了两个新的类。如果在新的资源即对话框中放入别的控件,则新的控件成为这类的一个成员,这就是说,成员与类有区别,同时又有联系,成员从属于一个类资源,但往往资源是的一个“单元”。

图2.15 类创建设臵

2.6.3 为两个新类加以声明

(1)在资源管理器中选择叫FileView选项卡,如图2.16所示。

图2.16 文件查看选项卡

(2)双击“教职工管理系统Dlg.cpp”,即出现该文件的开始部分,该部分用来对工程中的类进行声明,增加新的声明,如下所示:

//教职工管理系统Dlg. cpp : implementation file

在这一个文件的开始部分声明两个对话框资源的头文件,其代码如下:

//教职工管理系统.cpp: Defines the class behaviors for the application. //

#include \"stdafx.h\"

#include \"教职工管理系统.h\" #include \"教职工管理系统Dlg.h\" //开始声明

#include \"MyDlg1.h\" #include \"MyDlg2.h\" //结束声明

#ifdef _DEBUG

#define new DEBUG_NEW #undef THIS_FILE

Static har THIS_FILE [] = _FILE_; #endif

这样,在教职工管理系统Dlg.cpp中声明了两个新的类的头文件。通过声明程序,可以在以后对新的类的引用加以识别。如果不加以声明,将会出现不明身份的对象的信息提示。 2.7 为工程的主控界面设计一个菜单

在工程中我有了一个主窗体刘话框和两个新增加的对话框资源,主对话框资源可以在系统启动时运行,但其他的对话框如何在工程中加以显示?这就需要借助于菜单或命令按钮。这里,我首先为主对话框创建一个菜单,与对话框一样,菜单也可以作为一种资源被加入到工程中,并为用户加以运用。

2.7.1 菜单资源的加入与菜单设计

在工程中加入一个菜单资源的操作过程如下:

(1)在VC++主菜单中单击“插入 | 资源”菜单项,出现一个资源类型选择对话框。(2)在资源类型选择对话框中选择菜单(MENU)资源类型,并单击“新建”按钮,即可在工程中增加一个菜单资源。它出现在工程的资源选项卡中。接下来就需要用户设计菜单项,其菜单项如表2.3所示

表2.3 菜单对象的基本属性 对象名称 主菜单条目 子菜单条目 主菜单条目 子菜单条目 主菜单条目 子菜单条目

菜单设臵如图2.17所示。

ID 无 ID_DATA_MENU 无 ID_SALARY_MENU 无 IDS_ABOUTBOX 标题内容 职工基本信息 信息处理 职工工资管理 工资处理与浏览 关于 关于职工管理系统

图2.17 菜单

注意,在资源的运用中,菜单资源比较特殊,由于菜单资源是用VC++的菜单设计器进行制作的,因此它往往不需要像其他资源那样创建新的类和进行声明。 2.7.2 将菜单与主对话框连接

(1)在工程资源管理器中选样资源选项卡。(2)双击主对话框资源IDD_MY_DIALOG,出现主对话框。(3)用鼠标右键单击主对话框控件,出现一个快捷菜单,在快捷菜单中单击属性菜单项,出现属性设臵对话框。(4)在属性设臵对话框中选择菜单资源,选择目前创建的惟一的菜单资源即可(如果有多个菜单资源存在,则可在其中选择一个菜单,和对话框进行连接),如图2.18所示。

图2.18 对话框属性设臵

(5)关闭对话框并运行工程,可以发现主对话框已经成功地与菜单进行了连接,其效果如图2.19所示。

图2.19 菜单与对话框连接的效果

在工程中,创建程序框架时已经生成了一个About对话框,但它并未与菜单进行连接,其类也内系统自动创建,并不符合用户的需要,我需要将它删除并创建用户自己的About对话框。因此在进行下一节的内容之前,我先作如下操作:

(1)在工程资源管理器中将原先创建的About对话框删除,再插入一个新的对话框资源,作为用户自创建的About对话框。设臵它的资源索引号为IDD_ABOUT_DIALOG,对话框标题属性为“关于系统”。

(2)为新的对话框创建类,其类名为:CmyAboutDlg。

(3)同样需要在工程的“教职工管理系统Dlg.cpp”文件中声明新的About对话框,其声明如下所示:

//教职工管理系统Dlg.cpp : implementation file //

# include “stdafx.h”

# include “教职工管理系统.h” # include “教职工管理系统Dlg.h”

# include “MyDlg1.h” / /声明的对话框1 # include “MyDlg2.h” / /声明的对话框2

# include “MyAboutDlg.h” / /声有的About对话框 # ifdef _DEBUG

# define new DEBUG_NEW

# undef THIS_FILE

static char THIS_FILE [] = _FILE_; # endif

(4)重新设计About对话框,其过程如下:(5)放入两个静态文本控件,其标题分别为:“职工管理系统简化版”利“COPY RIGHT 2002”。(6)放入一个映像控件,设臵它的标题属性和图形文件即可.

教职工管理系统所需要的对话框均已经准备完毕,现在行在两个问题,一是如何用菜单去调用每—个对话框,二是如何在对话框中设计系统功能,即进行数据处理,这是我的毕业设计所需要的主要内容 2.7.3 用菜单调用对话框

菜单是与主对话框连接的,它在主对话框中进行显示。在向导创建的所有对话框中,除主对话框自动显示之外,其他对话框均需要用户编制过程代码进行调用。如何对对话框进行调用?我以调用IDD_DIALOGl为例加以说明。根据定义,该对话框是通过菜单ID_DATA MENU条目进行调用的,即调用该对话框进行职工基本信息处理。因此我为该菜单编制过程代码,其操作过程如下:(1)在工程的视图管理选项卡中双击菜单资源文档“IDR_MENU1”,出现菜单编辑器。(2)在菜单编辑器中选择“职工基本信息 | 信息处理”,并用鼠标右键单击,出现图2.21所示的快捷菜单。

图2.21 快捷菜单

菜单作为上对话柜中的成员,通过它可以调用其他对话柜,虽然不需要为它创建新的类,但仍然需要为菜单的每一个条目定义函数和创建过程。(3)单击“建立类向导”,出现图2.22所示类创建对话框。

图2.22 菜单类创建对话框

(4)选择菜单的过程信息映射“CoMmand”。(5)单击Add Function按钮为菜单增加一个函数,出现—个增加菜单成员函数的对话框,如图2.23所示。

图2.23 创建菜单的成员函数

(6)直接接受系统建议的菜单成员函数名“OnDataMenu”。(7)单击OK按钮完成成员函数名定义过程。(8)单击Edit Code按钮,出现菜单代码过程体:在代码过程体光标停留处编辑代码,如下所示:

void CMyDlg : : OnDataMenu ()

{

//TODO : Add your command handler code here 开始编辑代码 CMyDlg1 MyDlg1; / /主对话框

MyDlg1. DoModal (); / /显示调用对话框1 //结束代码编辑 }

这样就完成了用菜单调用对话框1的过程代码的编制,编译运行工程即可检验该菜单的执行功能,效果如图2.24所示。

图2.24 菜单调用的对话框

通过检验可以发现,对对话框的调用是可行的。用同样的方法,主菜单中的相关菜单项可以实现对话框2和About对话框的调用,其过程留给读者去完成。 2.8 制作职工基本信息处理对话框

在以上的过程中,我制作了四个对话框:一个主对话框,它与主菜单资源进行连接;一个对话框IDD_DIALOG1,它用于处理职工基本信息;一个对话框IDD_DIALOG2,它用于处理职工工资信息;另外我制作了一个About对话框,它用于显示系统的版本信息。

但是对于对话框IDD_DIALOG1和对话框IDD_DIALOG2,除能通过菜单调用该对话框之外,对话征几乎还不能作任何工作,也就是他还不具备功能。我首先实现对话柜IDD_DIALOGl的功能,即进行职工基本信息处理的功能。为此作如下操作:

(1)在工程的资源管理器中选择资源选项卡,并双击“IDD_DIALOG1”对话框资源,在工作区中出现IDD_DIALOGl对话框。(2)将对话框IDD_DIALOGl的OK按钮删除。(3)将对话框IDD_DIALOGl中的Cancel按钮删除。(4)在对话框中放入一个ADO Data控件(该控件简称为ADODC);注意,ADO Data 控件不是对话框控件的基本控件,它不在对话框控件的列表中,它属于ActiveX类控件,需要通过插入的方法将其放入到对话框中。(5)在对话框IDD_DIALOGl的空白处单击鼠标右键,出现一个快捷菜单。(6)在快捷菜单中单击“Insert ActiveX Control”菜单项,即插入一个AtiveX控件;在控件列表中选择数据表格控件,如图2.25所示。

图2.25 ADODC控件选择

(7)在ActiveX控件列表中选择“Microsoft ADO Data Control, version 60”选项。(8)单击“确定”按钳,即将一个ADODC控件放入到对话框中。(9)用鼠标右击ADODC控件,出现一个快捷菜单。(10)在快捷菜单中单击“属性”菜单项,出现控件属性设计器,如图2.26所示。

图2.26 ADODC控件属性设计器

(11)设臵ADODC控件的基本属性,如表2.4所示。 表2.4 ADODC控件的基本属性 属性 ID 显示 标题 ConnectionString RecordSource

属性内容 IDC_ADODC1 YES 数据浏览 DSN=教职工管理数据库 职工信息数据表 (12)在图2.26中将选项卡页面切换到Control页面:在该页面中选择Use ODBC Data Source Name选项,如图2.27所示。

图2.27 数据控件设臵

(13)单击New按钮,出现一个数据源类型的选择对话框,如图2.28所示。

图2.28 数据源类型选择

(14)在数据源类型的选择对话框中,选择“用户数据源”,出现图2.29所示的驱动程序选择对话框。

图2.29 数据源驱动程序选择

(15)由于我采用Microsoft Access 2003创建数据库和数据表,因此我相应地选择Microsoft Access Driver驱动程序。(16)单击“下一步”按钮,出现一个数据源设臵完成的信息提示对话框。

(17)单击“完成”按钮,即出现确定数据源位臵和为数据源命名的对话框,如图2.30所示。

图2.30 数据源命名和位臵确定

(18)在图2.30中为数据源命名并确定位臵后,单击“确定”按钮,即完成数据源设臵:此时可以发现,在Use ODBC DataSource Name数据源列表框中已经存在了新创建的数据源,即“教职工管理数据库”,如图2.31所示。

图2.31 新创建的数据源显示

数据源创建的本质就是为应用系统引入一个数据库文件,但一个数据库中往往存在多个数据表,因此需要为对话框选择一个记录源。(19)将图2.31中的选项卡页面切换到“RecordSource”选项卡,在记录源选项卡的数据命令类型列表中选择“表”方式,如图2.32所示。

图2.32 命令类型列表

(20)然后在下方的“表”文件列表中选择“职工信息数据表”即可。这样即完成了为对话框创建一个数据环境的过程。

数据源或数据环境的创建仅为对话框设臵了—个可用的数据环境,但如何在对话框中处理数据环境中的数据,是对话框制作中的又一关键问题。这里,我为对话框引入一个专门用于数据操作和数据编辑的控件,即数据表格控件。为此作如下操作;(1)在对话框IDD_DIALOGl中放入一个数据表格控件IDC_DATAGRIDl。数据表格控件也不是对话框的基本控件,它仍需要采用插入的方法加以进行。(2)在对话框的空白处单击鼠标右键,出现一个快捷菜单。(3)在快捷菜单中单击“Insert ActiveX Control”菜单项,即插入一个ActiveX控件;在控件列表中选择数据表格控件,如图2.33所示。

图2.33 微软数据表控件选择

(4)单击“确定”按钮,即在对话框中个插入一个“Microsoft DtaGird Control, Version 6.0”表格控件,它是以表格的方式对数据源中的数据表进行数据处理的控件:(5)设臵表格控件的属性,如表2.5所示。

表2.5 DataGrid控件的基本属性 属性 ID 显示 标题 DataSource AllowAddNew AllowArrows AllowDelete AllowUpdate 属性内容 IDC_DATAGRID1 YES 请输入或修改职工数据记录 IDC_ADODC1 True True True True 同样,表格属性也有许多其他属性,用户可以根据不同的系统开发的需要,设臵不同的属性,其中表格的初始状态是不允许修改、删除和刷新记录的,因此需要设臵它的AllowAddNew、AllowDelete和AllowUpdate属性为True。这样在工程的运行期就可以通过表格控件对数据表中的记录进行编辑、修改和添加。(6)在表格控件的数据源属性项中,单击“DataSource”右边的开关按钮,出现一个绑定数据源列表,选择相应的数据源即可,如图2.34所示。

图2.34 数据源绑定属性设臵

最后,编译执行工程,并显示职工基本信息对话框,可以在表格控件中对数据进行编辑、修改和用ADODC控件进行浏览查询,如图2.35所示。

可以看出,我的毕业设计中用ADODC控件创建了数据源,它与前—个我的毕业设计中,在Microsoft Windows 98/2000中使用ODBC程序创建数据源的基本作用是一致的,但在Microsoft Windows 98/2000中使用ODBC程序需要依赖控制面板,而且数据源的命令方法无法加以选择。采用ADODC控件创建数据源是目前广泛使用的一种方法,它可以直接在项目设计期进行,只有直观可视的特点,最关铰的是它将应用程序的开发彻底“对象化”了。

图2.35 职工信息处理运行效果

2.9 制作职工工资处理对话框

前面我制作了职工基本信息处理对话框,这里,我将制作职工工资处理对话框。它们的制作过程和操作方法基本一致,为保持每一个我的毕业设计对一个或两个加以点到述的一致性,我仍采用ADODC控件引入数据源,并用数据表格进行数据处理。(1)在项目的视图管理器中选择对话框IDD_DIALOG2。(2)将对话框的标题属性设臵为“职工工资处理”。

(3)将对话框2中的的Cancel按钮删除。(4)将对话框2个的OK按钮的标题属性修改为“返回”。(5)在对话框中放入一个ADODC控件,其基本属性设臵如表2.6所示。

表2.6 ADODC控件的基本属性

属性 ID 显示 属性内容 IDC_ADODC1 YES 标题 ConnectionString RecordSource 数据浏览 DSN=教职工管理数据库 职工工资数据表 (6)在对话框中放入一个数据表格控件IDC_DATAGRID1。 (7)设臵表格控件的基本属性,如表2.7所示。

表2.7 DataGrid控件的基本属性

属性 ID 显示 标题 DataSource AllowAddNew AllowArrows AllowDelete AllowUpdate

(8)检验对话框运行效果,如图2.36所示。

属性内容 IDC_DATAGRID1 YES 请对职工工资数据进行增加、修改! IDC_ADODC1 True True True True

图2.36 职工工资处理对话框运行效果

2.10 对话框间的相互切换

在以上的制作过程中,对话框均是通过主菜单进行的,但能否直接在对话框之间相互切换呢?如直接从“职工基本信息处理”对话框切换到“职工工资处理”对话框,或从“职工工资处理”对话框切换到“职工基本信息处理”对话框。这里我就将专门介绍这一问题的解决方法。

2.10.1 从“职工基本信息处理”对话框切换到“职工工资处理”对话框

(1)在工程的资源管理器中选择MyDlg1.cpp文件。(2)双击MyDlg1.cpp文件,出现它的编辑器和文件内容;在文件的开头处声明对话框2,其声明如下所示:

//MyDlg1.cpp : implementation file # include “stdafx.h”

# include “教职工管理系统.h” # include “Mydlg1.h”

//开始声明

# include “MyDlg2.h” 结束声明 //

# ifdef_DEBUG

# define new DEBUG_NEW # undef THIS_FILE

static char THIS_FILE [] = _FILE_; #endif

这样,在对话框IDD_DIALOG1中调用IDD_DIALOG2,就可以识别IDD_DIALOG2了。 接下来,我在对话框IDD_DIALOGl中放入一个命令按钮,用于将对话框IDD_DIALOG1切换到对话框IDD_DIALOG2,其操作如下:(1)在对话柜IDD_DIALOGl中放入一个命令按钮。(2)设臵它的索引号为IDC_BUTTONGZCL;设臵它的标题为“处理工资”,即该命令按钮的功能是用于处理工资。为命令按钮建立信息映射函数。(3)用鼠标右键单击命令按极,出现一个快捷菜单,在快捷菜单中单击“建立类向导”,出现消息映射定义对话框,如图2.37所示。

图2.37 消息映射对话框

(4)在消息映射对话框中选择消息BN_CLICKED并单击Add Function按钮,出现一个函数定义对话框,如图2.38所示。

图2.38 成员函数名定义

(5)单击OK按钮,完成成员函数的定义。(6)单击Edit Code按钮,可以在对应的成员函数过程“代码体”中编制过程代码,其代码如下所示:

void CMyDlg1 : : OnButtongzc1 () {

/ / TODO : Add your control notification handler code here CMyDlg2 MyDlg2; MyDlg2. DoModal (); }

完成以上的制作过程后,检验工程,发现可以通过对话框1调用对话框2。 2.10.2 从“职工工资处理”对话框切换到“职工基本信息处理”对话框

从“职工工资处理”对话框切换到“职上基本信息处理”对话框与前面的切换刚好相反,它是从对话框2切换到对话框1,但其制作过程基本一致。

(1)在工程的资源管理器中选择MyDlg2.cpp文件。(2)双击MyDlg2.cpp文件,出现文件编辑器及文件内容;同样我需要在对话框2中声明对话框1,即在MyDlg2.cpp文件中声明对话框1,其声明如下所示:

/ / MyDlg2. cpp : implementation file

# include “stdafx.h”

# include “教职工管理系统.h” # include “MyDlg2.h” / / 开始声明

# include “MyDlg1.h” 结束声明 / /

# ifdef _DEBUG

# define new DEBUG_NEW # undef THIS_FILE

static char THIS_FILE [] = _FILE_; #endif

(3)在对话框IDD_DIALOG2中放入一个命令按钮,用于将对话框2切换到对话框1。 (4)设臵命令按钮的索引属性为:IDC_BUTTONZGXX,设臵它的标题属性为:职工信息,对话框的布局如图2.39所示。

图2.39 对话框2的新布局

同样需要为命令按钮建立消息映射和编制过程代码。

(5)用鼠标右键单击命令按钮,出现—个快捷菜单,在快捷菜单中单击“建立类向导”,出现消息映射对话框,如图2.40所示。

图2.40 消息映射对话框

(6)在消息映射对话框中选择命令按钮的消息为ON_CLICKED,并单击Add Function按钮,出现一个建立成员函数的对话框,直接接受系统提供的函数名即可。

(7)单击Edit Code按钮,出现命令按铅的过程代码编辑窗口,在代码编辑窗口中编辑过程代码,如下所示:

Void CMyDlg2 : : OnButtonzgxx () {

/ / TODO : : Add your control notification handler code here CMyDlg1 MyDlg1; MyDlg1. DoModal (); }

这样我完成了对话框2的制作,通过对话框2,用户可以将它切换到对话框1。

至此,我完成了我的毕业设计制作的全部过程,编译试运行工程,可以检验其每一个功能模块及其对话框的相互调用情况,查看是否完全符合系统设计的要求。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务