商品销售管理系统的设计与开发_第1页
商品销售管理系统的设计与开发_第2页
商品销售管理系统的设计与开发_第3页
商品销售管理系统的设计与开发_第4页
商品销售管理系统的设计与开发_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东 北 石 油 大 学课 程 设 计 2012 年 7 月 10 日课 程 可视化编程课程设计 题 目 商品销售管理系统的设计与开发 院 系 计算机与信息技术学院 专业班级 计科 10-6 班 学生姓名 学生学号 指导教师 东北石油大学课程设计任务书课程 可视化编程课程设计题目 商品销售管理系统的设计与开发专业 计算机科学与技术 姓名 学号 主要内容、基本要求、主要参考资料等一、主要内容本次课程设计主要内容为完成商品销售管理系统的设计与开发,该系统功能包括:1对商品目录的管理。2对销售部门的管理。3对雇员的管理。4对订单信息、代理、客户国家名目的管理。二、基本要求:1该系统开发环境为 micr

2、osoft visual c+6.0,后台数据库为 access。2完成系统规划与设计过程,实现系统功能的开发,确保系统可顺利运行; 3完成课程设计报告撰写工作。三、主要参考资料:1 孙鑫,余安萍.vc+深入详解m. 电子工业出版社,2006.2 王艳平,张铮.windows 程序设计m. 人民邮电出版社,2008.3 侯俊杰.深入浅出 mfcm. 华中科技大学出版社,2001.完成期限 21-22 周 指导教师 专业负责人 2012 年 7 月 10 日目 录第 1 章 系统分析 .11.1 系统背景.11.2 开发工具.11.3 业务流程分析.2第 2 章 系统设计及功能要求 .32.1

3、系统架构 .32.2 系统功能模块图.32.3 模块分析.32.4 系统数据库设计.42.5 系统的功能要求.5第 3 章 系统实现 .63.1 制作系统封面 .63.2 商品销售管理系统应用程序基本框架 .63.3 应用系统封面界面 .73.4 商品销售管理系统界面的制作.83.5 其他界面的制作 .17第 4 章 系统测试以及运行 .254.1 测试目的.254.2 测试过程及结果.25总 结 .26参考文献 .27东北石油大学本科生可视化编程课程设计1第 1 章 系统分析1.1 系统背景商品销售管理系统是根据旧时商店的货品管理,财务管理的模式发展起来的,现在应用于很多商店,使商店管理货品

4、,掌握销售信息更加高效。商品销售管理系统的开发采用管理端销售端的结构模式,包括后台数据库的建立和维护以及前端应用程序(管理端,销售端)的开发两个方面。对于前者要求建立起数据一致性和完整性强,安全性好的库。而对于后者则要求应用程序功能强劲,完善,易使用等特点1。1.2 开发工具vc+6.0 是 microsoft 公司推出的一个基于 windows 系统平台、可视化的集成开发环境,它的源程序按 c+语言的要求编写,并加入了微软提供的功能强大的 mfc(microsoft foundation class)类库2。mfc 中封装了大部分 windows api函数和 windows 控件,它包含的

5、功能涉及到整个 windows 操作系统。mfc 不仅给用户提供了 windows 图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准 windows 应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间3。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用 vc+提供的高度可视化的应用程序开发工具和 mfc 类库,可使应用程序开发变得简单。microsoft access 是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名

6、在一个表中不能重复。access 数据库以文件形式保存,文件的扩展名是 mdb4。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。本案例将用 vc+制作一个商品销售管理系统,可以基本实现商品销售管理的大部分功能。本案例将采用简化的过程代码和完整的系统集成技术,并采用odbc 方式连接数据源。东北石油大学本科生可视化编程课程设计21.3 业务流程分析商品管理系统是供公司管理阶层使用的,可分内部管理和外部管理5。对内可以管理雇员和商品销售情况等,对外可以进行客户管理订单管理等。主要功

7、能:1.用户登录;2.数据库管理:(1).商品目录的管理(2).销售部门的管理(3).雇员管理的管理(4).代理管理的管理(5).客户管理的管理(6).国家名目的管理3.退出系统。 东北石油大学本科生可视化编程课程设计3第 2 章 系统设计及功能要求2.1 系统架构该系统是专门用于用户登录、查阅商品销售管理基本信息。用户在成功登陆后可以查询雇员基本信息,商品分类信息,订单信息等。2.2 系统功能模块图本系统就是采用模块化的设计思想来完成的系统,系统功能模块图如图 2.1所示:图 2-1 系统模块功能图2.3 模块分析1“登陆系统”模块“登录系统”模块包括进入系统和退出系统两部分,点击进入系统可

8、以进入下一模块。2“系统主控界面”模块“系统主控界面”模块有商品目录,销售部门 ,雇员管理 ,订单管理 ,销售部门管理订单管理雇员管理代理商管理商品目录管理国家目录管理商品销售管理系统东北石油大学本科生可视化编程课程设计4代理管理,客户管理,国家名目按钮,点击按钮可进入相应模块。3.“系统功能界面”模块“系统功能界面”是具体查看各类信息的界面。2.4 系统数据库设计根据上功能分析,需要建立以下的表:1.订单信息表;2.雇员信息表; 3.国家信息表;4.客户信息表;5.零售商信息表;6.商品目录信息表;7.销售部门信息表。表 2-1 订单信息表编号订单编号客户编号销售日期交付日期合同说明税费运载

9、费付款总量1105552011-1-12011-1-15610.0010.000.00表 2-2 雇员信息表编号雇员编号雇员名字雇员姓氏雇员电话聘用时间薪水11张一王136666662012-7-114210.00表 2-3 国家信息表编号国家首都所在州名地区人口1中国北京-黑龙江省540 万表 2-4 客户信息表编号客户编号公司名称地址传真税费联系方式最后交易日期11网易北京055555560133333332012-7-11表 2-5 零售商信息表编号零售商编号零售商姓名地址国家电话传真优先偿付11王二中国13555555222666-55555000.00东北石油大学本科生可视化编程课程

10、设计5表 2-6 商品目录信息表编号订单编号商品编号部门编号质量品级折扣2104719007031048095583表 2-7 销售部门信息表部门编号零售商品说明库存订购成本价格93820优5124410953555.001399.002.5 系统的功能要求本商品销售管理系统应具备以下功能:1.交易管理,包括进货登记管理,销售登记管理,退货登记管理的功能。2.进货统计管理,其中包括有关进货的各种统计数据表,如今日进货统计,本月进货统计,本极度进货统计,本年度进货统计等。3.销售统计管理,其中包括有关销售的各种统计数据表,如今日销售统计,本月销售统计,本极度销售统计,本年度销售统计等。4.员工销

11、售业绩的考核,可以很方便的查看各员工的销售情况,以便对各员工的业绩进行考核比较。5.同时,为了能够更好的了解企业各方面情况,以便于经营管理。还需要几个信息表来显示诸如库存,生产厂商,员工信息等内容的功能。东北石油大学本科生可视化编程课程设计6第 3 章 系统实现商品销售管理系统是利用现有的软硬件环境,充分的利用资源制订的。系统符合公司对信息管理的需求,采用模块化的程序设计的方法,便于系统功能的各种组合和修改。采用模块化的原理进行程序设计,可以使结构变得清晰,不仅容易设计实现,也容易阅读和理解,更容易进行维护和升级。3.1 制作系统封面在本案例中,我们仍将制作一个应用系统封面,我们需要制作一个对

12、话框作为系统封面,系统封面往往在系统启动时加以显示。系统封面的作用主要有:(1)说明系统名称;(2)说明系统的归属,即版权;(3)说明系统制作时间 ;(4)修饰应用系统。我首先制作一个系统封面的位图文件,其系统封面的位图文件如图 3-1所示:图 3-1 系统封面3.2 商品销售管理系统应用程序基本框架在前面我们已经创建了数据库、数据表、制作了系统封面的位图文件,也就是作好了系统开发的一切工作,因此我们可以着手应用系统的界面制作了。在vc+中,往往将应用程序的界面称作对话框,应用程序界面的制作往往就是对对话框的应用开发。东北石油大学本科生可视化编程课程设计7本案例我将不再通过 odbc 数据源创

13、建的方法,创建作为基本框架中主对话框的数据源,而仅创建一个基本对话框。基本对话框用于制作应用系统的封面,基本框架的制作过程如下:(1)结束数据库的创建并启动 vc+,出现 vc+主控界面。(2)在 vc+主控界面中单击“文件|新建”菜单项,出现新建工程类型选择对话框,在工程类型对话框中选择 mfc appwizard(exe)工程类型。(3)输入工程名称为“商品销售管理系统”并选择 win32 平台类型。(4)单击“确定”按钮,进入文档类型设置对话框。(5)选择“基本对话框”类型,即创建一个基本对话框的应用程序,设置资源使用的语言为中文。(6)单击“完成”按钮,出现基本对话框的全部信息,确认创

14、建信息之后,即出现应用程序开发的对话框设计界面。3.3 应用系统封面界面在案例五和案例六的工程中,我们通过增加一个 splash 工程,作为应用系统的封面资源,但在本案例中,我们将生成的应用系统框架中的基本对话框 idd-my-dialog 作为应用系统的封面加以制作。为什么基本对话框可以作为应用系统封面呢?很显然,在工程编译或运行时最先启动的就是基本对话框,在前面我们将它称之为主对话框,对主对话框进行加工制作,用于创建应用系统的封面,通过它确定是否进行其他的相关操作,其制作步骤如下: (1)在主对话框 idd-my-form 中将提示文本框“todo:在这个对话框里设置表格控制。”删除。 (

15、2)在主对话框 idd-my-form 中将两个命令按钮“确定”和“取消”删除,并放入两个新的命令按钮,设置它伞兵相关属性。 (3)在对话框 idd-my-dialog 中放入一个图片控件,并加载我们前面制作的封面位图文件,窗体布局如图 3-2 所示。图 3-2 窗体布局东北石油大学本科生可视化编程课程设计8其中,两个命令按钮控件的属性设置如表 3-1 所示:表 3-1 命令按钮对象的基本属性id标题内容idc-buttonenter进入系统idc-buttonexit退出系统在两个命令按钮中,其中一个用于退出系统,即结束整个系统操作,另外一个用于进入系统,所谓进入系统,就是进入应用系统的主界

16、面因此需要给这两个命令按钮建立消息映射,创建函数名和编制该命令的事务过程代码。“进入系统”命令按钮的过程代码如下所示:void cmydig:onbuttonenter()/todo:add your control notification handler code herecmaindig maindig;maindig domodal(); “退出系统”命令按钮的过程代码如下所示:void cmydig:onbuttonexit() /todo:add your control notification handler code hereonok();3.4 商品销售管理系统界面的制作在

17、自动生成的应用程序框架中,我们已经将主对话框 idd-my-dialog 用作了系统封面,作为一个应用系统,目前它还需要一个系统主控界面,为此我们需要在工程中增加一个对话框资源,用于制作“商品销售管理系统”主控界面。其步骤如下:(1)在 vc+主菜单中单击“插入|资源|dialog”菜单项,确认后即在工程的视图选项卡中增加了一个新的对话框 idd-dialog1。(2)将新的对话框 idd-dialog1 的标题属性修改为“商品销售管理系统主控界面”。(3)在对话框中加入一个图片控件并调用一个位图文件,对主控界面加以修饰。(4)将 ok 命令按钮删除。东北石油大学本科生可视化编程课程设计9(5

18、)将 cancel 命令按钮删除。(6)在对话框中放入三个分组框控件,用于对对话框进行区域划分,形成层次感。(7)在对话框中放入一个标签控件,用于说明对话框,其标签标题名为“商品销售管理系统”。(8)在对话框中的两个区域之中放入七个命令按钮,作为七个功能的执行控件。(9)在对话框中放入现代战争状态条控件 idc-sbarctrl1,该控件是一个 activex 控件,仍旧需要用插入的方法将其插入到对话框中。用户还可以为每一段即每一个窗格设置一个图片,以对状态条进行修饰,最后对话框如图 3-3 所示。图 3-3 对话框及状态条布局一个对话框只是一个框架,要使我们增加的对话框资源成为一个应用系统的

19、主界面,需要用菜单或命令按钮的方法来完成其他程序或对话的调用,因此我们需要制作一个菜单文档,并与主界面对话框进行连接。其菜单的制作过程如下: (1)在 vc+主菜单中单击“插入|资源|menu”菜单项,确认后即在工程的视图选项卡中增加了一个菜单文档 idr-menu1。(2)双击该文档,出现菜单设计器,在菜单设计器中设计每一个主菜单和下拉菜单即可,其设计效果如图 3-4 所示。图 3-4 菜单设计东北石油大学本科生可视化编程课程设计10其中所有的菜单条目如表 3-2 所示。表 3-2 菜单及下拉菜单id标题内容 id-menu-spml商品目录商品目录管理 id-menu-xsbm销售部门销售

20、部门管理 id-menu-ddgl订单管理订单管理 id-menu-gygl雇员管理雇员管理 id-menu-dlgl代理商管理代理商管理 id-menu-khgl客户管理客户管理 id-menu-gjml国家名目国家名目管理 菜单文档一经创建,就需要用一个对话框来与之连接,成为该对话框的一个组合部分,这里的菜单连接就是与我们创建的主对话框进行连接,连接的方法如下:(3)在对话框的通用属性选项卡中打开“菜单”列表框,选择一个菜单文档进行关联,如图 3-5 所示。图 3-5 对话框与菜单的连接这样运行工程并调用主界面时,菜单便显示在对话框之中,如图 3-6 所示。东北石油大学本科生可视化编程课程

21、设计11图 3-6 对话框与菜单的连接效果菜单的每一个条目与命令按钮的作用几乎是一致的,只是表现形式不同,主要用于对程序的执行和对话框的调用,因此它仍然需要建立消息映射、创建命名函数、编制过程代码。由于此处涉及多个菜单,我们将结合后面的对话框的制作再加以说明。在前面我们几乎为“商品销售管理系统”形成了一个完整的框架,它包括系统封面、主窗口、主菜单、状态条等各种 windows 应用系统的相关要素。但还未有任何实质性的功能的制作,因此从本节起我们就将制作“商品销售管理系统”中的各个功能模块。首先制作“商品目录管理”对话框。3.4.1 增加对话框资源并插入控件对象作为一个较大的应用系统,往往需要用

22、一些专门的对话框进行分类的数据处理,因此我们首先需要增加一个对话框资源。其操作如下:(1)在 vc+主菜单中单击“插入|资源|dialog”菜单项,确认后即在工程的视图选项卡中增加了一个新的对话框 idd_dialog1。(2)将新的对话框 idd_dialog1 的标题属性修改为“商品目录管理”;而它的资源索引号 idd_dialog1 修改为 idd_dialogspml。(3)删除对话框中自动创建的两个命令按钮。(4)插入一个 ado 数据源控件 idc_adodc1。(5)插入一个数据表格控件 idc_datagrid1。其对话框的布局如图 3-7 所示。东北石油大学本科生可视化编程课

23、程设计12图 3-7 “商品目录管理”对话框布局3.4.2 为“商品目录管理”对话框创建新类并进行声明“商品目录管理”对话框是工程中增加的新的资源,因此必须为它创建一个新类并加以声明,关于对话框的类的创建过程我们就不多介绍了,将它的新类命名为“cspm1dlg”。一个新的类一经创建,就需要在工程中对此加以声明,目前调用该对话框资源的对话框是 idd-maind1g,因此需要在它的实现文件中加以声明,其声明过程如下所示:/maind1g.cpp : implementation file/#include stdafx.h#include 商品销售管理系统.h#include maindlg.h

24、#include spmldlg.h#ifdef _debug#define new debug-new#undef this-filestatic char this-file =_file_;#endif这样在以后的使用中,可以将它作为一个已知的资源加以调用。3.4.3 为“商品目录管理”对话框引入数据源与前面的任何数据管理一样,进行数据管理的对话框必须引入或创建一个数据源,其操作如下:在“商品目录管理”对话框中插入一个 activex 控件 adodc1,并设置其基本属性,如表 3-3 所示。东北石油大学本科生可视化编程课程设计13表 3-3 adodc1 控件对象的基本属性属性属性内容

25、ididc_adodcspml显示yes标题商品目录connectionstringdsn=商品销售数据源recordsource商品目录commandtype2-table commandtype其中 adodc1 控件属性中的 dsn 属性的设置过程如下:(1)用鼠标右键单击 adodc1 控件,出现一个属性设置页面,将该页面切换至控制属性页面,在控制页面中选择数据源创建类型,并新建一个数据源,出现一个数据源类型选择对话框,如图 3-8 所示。(2)单击“下一步”按钮,出现一个选择数据源驱动程序的对话框,我们仍然选择 microsoft access 数据源驱动程序,如图 3-9 所示。(

26、3)单击“下一步”按钮,出现完成安装数据源设置的过程。(4)单击“完成”按钮,出现一个数据源设置对话框,如图 3-10 所示。 在数据源设置对话框中,首先需要设置一个数据源名称,它是我们后面调用该数据源的依据,为其取名为“商品销售数据源”。另外用户可对该数据源作一个描述或说明,如描述为“该数据源用于创建一个商品销售管理系统”。 图 3-8 数据源类型选择东北石油大学本科生可视化编程课程设计14 图 3-9 数据源驱动程序选择(5)单击 select 按钮,出现一个打开文件对话框,在对话框中选择前面创建的“商品销售数据库.mdb”即可,如图 3-11 所示。(6)单击 ok 按钮,即完成整个数据

27、源文件的创建工作。图 3-10 数据源设置 东北石油大学本科生可视化编程课程设计15图 3-11 数据源中的数据库选择接下来我们为 adodc1 控件选择数据源,即“商品销售数据源”,如图 3-12 所示。(7)将 adodc1 的属性设置选项卡页面切换至“记录源”页面,为adodc1 控件设置数据源命令类型和数据表文件,如图 3-13 所示。 图 3-12 adodc1 的数据源选 图 3-13 adodc1 记录源设置东北石油大学本科生可视化编程课程设计16设置记录源本质上就是从创建的数据源中选择一个数据表文件。确认后即完成整个 adodc1 控件的属性设置过程。3.4.4 为“商品目录管

28、理”对话框引入表格控件在前面我们已经为“商品目录管理”对话框引入了数据源控件 adodc1,并创建了数据源,为能在对话框中对商品目录进行管理,我们需要在对话框中插入一个数据表格控件 idc_datagrid1,它的插入方法在前面已经多次介绍过,这里就不再重复。其表格控件的基本属性如表 3-4 所示。表 3-4 datagrid 控件的基本属性属性属性内容ididc_datagrid1显示yes标题商品目编辑查询表格datasourceidc_adodcspmlallowaddnewtrueallowarrowstrueallowdeletetrueallowupdatetrue最后的“商品目录

29、管理”对话框的布局如图 3-8 所示,其运行效果如图 3-14所示。图 3-14 “商品目录”管理界面东北石油大学本科生可视化编程课程设计173.5 其他界面的制作在前面我们已经制作了一个“商品目录管理”界面,还有 6 个方面的管理内容的界面需要制作,其中包括:“销售部门管理”界面、“雇员管理 ”界面、“订单管理”界面、“代理管理 ”界面、“客户管理”界面、“国家名目管理”界面。这 6 个界面的制作过程完全可以采用与“商品目录管理”界面一样的制作方法进行,因此我们不再重复 6 次地进行描述了。我们用一个总表来概括这 7 个界面的类创建、类声明、数据源控件设置和数据表控件设置然后列出主界面的实现

30、文档供大家参考,它包含了类的声明、进程代码等等内容,这样可以起到事半功倍的作用。3.5.1 主控界面的实现文件最后我们列出工程主对话框 idd_maindlg 的实现文件,我们制作的一切的对话框几乎均是通过主对话框进行控制的,因此该对话框的实现文件几乎包含了后面制作的对话框的全部内容,包括菜单过程和中速键过程的一切代码。了解对话框或工程的实现的文件,对于学习运用 vc+是大有好处的。/maindlg.cpp : implementation file# include stdafx.h# include 商品销售管理系统.h# include maindlg.h # include spmld

31、lg.h# include bmgldlg.h # include gygldlg.h # include ddgldlg.h # include dlgldlg.h # include khgldlg.h # include gjmmdlg.h # ifdef _debug # define new debug_new # undef this_file static char this_file =_file_; # endif / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

32、 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / cmaindlg dialog cmaindlg:cmaindlg (cwnd* pparent /*=null*/) : cdialog (cmaindlg:idd, pparent)东北石油大学本科生可视化编程课程设计18 / afx_data_init(cmaindlg) /note: the classwizard will add member initialization here / afx_data_init void cmaindlg:dodoat

33、aexchange(cdataexchange* pdx) cdialog:dodataexchange(pdx); / afx_data_map(cmaindlg) /note:the classwizard will add ddx and ddv calls here/afx _data_map begin_message_map(cmaindlg, cdialog) /afx_msg_map(cmaindlg) on_command(id_menu_spml, onmenuspml) /on_bn_clicked(idc_buttonspml, onbuttonspml)on_comm

34、and(id_menu_ddgl, onmenuddgl)on_command(id_menu_dlgl, onmenudlgl)on_command(id_menu_gjml, onmenugjml)on_command(id_menu_gygl, onmenugygl)on_command(id_menu_khgl, onmenukhgl)on_bn_clicked(id_menu_spml, onmenuspml)on_command(id_menu_xsbm, onmenuxsbm)/afx _msg_mapend_message_map ( )/ / / / / / / / / /

35、/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / cmaindlg message handlersvoid cmaindlg:onmenuspml()/todo:add your command handler code herecspmldlg spmldlg;spmldlg.domodal();void cmaindlg:onbuttonspml()/todo:add your contr

36、ol notification handler code herecspmldlg spmldlg;spmldlg.domodal();东北石油大学本科生可视化编程课程设计19void cmaindlg:onmenuddgl()/todo:add your command handler code herecspmldlg ddgldlg;ddgldlg.domodal();void cmaindlg:onmenudlgl()/todo:add your command handler code herecdlgdlg dlgdlg;dlgdlg.domodal();void cmaindlg

37、:onmenugjml()/todo:add your command handler code herecgjmmdlg gjmmdlg;gjmmdlg.domodal();void cmaindlg:onmenugygl()/todo:add your command handler code herecgygldlg gygldlg;gygldlg.domodal();void cmaindlg:onmenukhgl()/todo:add your command handler code hereckhgldlg khgldlg;khgldlg.domodal();void cmain

38、dlg:onmenuxsbm()/todo:add your command handler code herecbmgldlg bmgldlg;bmgldlg.domodal();东北石油大学本科生可视化编程课程设计203.5.2 工程实现文件的代码分析在最后我们列出工程的实现文件,大家可以看出,在工程的实现文件中,它包括了对主对话框的声明和调用,这样大家可以了解工程执行的前后关系.工程实现文件内容如下所示: /商品销售管理系统 dlg.cpp : implementation file # include stdafx.h # include商品销售管理系统.h # include商品销售

39、管理系统 dlg.h # include maindlg.h # ifdef _debug # define new debug_new # undef this_file static char this_file =_file_; # endif/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / caboutdlg dialog used for app about class caboutdlg:public cdialog public:

40、caboutdlg ( ); /dialog data /afx_data(caboutdlg) enum idd=aboutbox ; /afx_data /classwizard generated virtual function overrides /afx_virtual(caboutdlg)protected: virtual void dodataexchange(cdataexchange* pdx); /ddx/ddv support /afx_virtual /implementationprotected: /afx_msg(caboutdlg) /afx_msg dec

41、lare_message_map ( ); caboutdlg:caboutdlg ( ) : cdialog(caboutdlg:idd)东北石油大学本科生可视化编程课程设计21 /afx_data(caboutdlg) /afx_data_init void caboutdlg:dodoataexchange(cdataexchange* pdx) cdialog:dodataexchange(pdx); / afx_data_map(caboutdlg) /afx _data_map begin_message_map(caboutdlg,cdialog)/afx_msg_map(cab

42、outdlg)/no message handlers/afx_msg_mapend_message_map( ) / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / cmydlg dialog cmaindlg:cmydlg (cwnd* pparent /*=null*/) : cdialog (cmaindlg:idd, pparent) / afx_

43、data_init(cmydlg) /note: the classwizard will add member initialization here /afx_data_init /note that loadicon does not require a subsequent destroyicon in win32 m_hicon = afxgetapp( )-loadicon(idr_mainframe); void cmydlg:dodoataexchange(cdataexchange* pdx) cdialog:dodataexchange(pdx); / afx_data_m

44、ap(cmydlg) /note:the classwizard will add ddx and ddv calls here /afx _data_map begin_message_map(cmydlg, cdialog)/afx_msg_map(cmydlg)on_wm_syscommand( )东北石油大学本科生可视化编程课程设计22on_wm_paint( )on_wm_querydragicon( )on_bn_clicked(idc_buttonexit, onbuttonexit)on_bn_clicked(idc_buttonenter, onbuttonexit)/afx

45、 _msg_mapend_message_map ( )/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / cmydlg message handlers bool cmydlg:oninitdialogf( ) cdialog:oninitdialog( ); / / add aboutmenu item to system menu. / / idm_a

46、boutbox must be in the system command range. assert(idm_aboutbox & 0 xfff0) = idm_aboutbox); assert(idm_aboutbox appendmenu(mf_separator); psysmenu-appendmenu(mf_string,idm_aboutbox ,straboutmenu); /set the icon for this dialog. the framework does this automatically /when the applications main windo

47、w is not a dialog seticon(m_hicon, true); / / set big icon seticon(m_hicon, true); / / set big icon /todo: add extra initialization herereturn true; / / return true unless you set the focus to a control void cmydlg:onsyscommand(uint mid, lparam iparam) if (nid & 0 xfff0) = idm_aboutbox) 东北石油大学本科生可视化

48、编程课程设计23 caboutdlg dlgabout; dlgabout.domodal( ); else cdialog:onsyscommand(nid, lparam); /if you add a minimize button to your dialog, you will need the code below /to draw the icon. for mfc applications using the document/view model, void cmydlg:onpaint( ) if(isiconic( ) cpaintdc dc(this); / / dev

49、ice context for painting sendmessage(wm_iconerasebkgnd,(wparam) dc.getsafehdc( ),0); /center icon in client rectangle int cxicon = getsystemmetrics(sm_cxicon); int cyicon = getsystemmetrics(sm_cyicon); crect rect; getclientrect(&rect); int x = (rect.width( ) cxicon + 1) / 2; int y = (rect.height( ) cyicon + 1) / 2; /draw the icon dc.drawicon(x, y, m_hicon); else cdialog:onpaint( ); /the system call

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论