资源描述
摘要
当今社会经济发展迅速,城市私家车日益普及,给人们交通出行带来方便的同时,也给小区车位管理带来了新的难题。为了满足小区有车位管理的需求,我们尝试着设计了一个简洁稳定实用的小区车位管理系统。这个系统共分三大模块:小区车位管理系统——车位图模块,小区车位管理系统——车位管理模块,小区车位管理系统——车主和缴费信息模块。
车位图模块主要显示车位图、车位编号、车位属性、车位业主信息等,并连接到小型数据库。车位管理模块主要为小型数据库的设计,表格形式可修改、添加、查询车位信息和车位业主信息。车主和缴费信息模块主要以表格形式显示出车位业主信息并可修改、添加、查询,以及显示缴费信息。
本人负责车位图模块的设计与开发,先根据小区实际规划,画出小区平面图,并设计管理系统的界面。当鼠标左键点击任意车位时,在页面内显示出该车位的信息。
开发工具选择Microsoft Visual C++6.0,数据库选择sql server2008组合就能够完成本系统的开发。
关键词:车位管理系统 车位图模块 Microsoft Visual C++6.0 sql server2008
Abstract
In today's society the rapid economic development, the city of private cars increasing popularity, transportation to people bring convenient while, also brought new problems for parking space of the community management.In order to meet the needs of community parking management, we try to design a simple stable practical residential parking management system.This system is divided into three modules: residential parking management system, parking map module, district parking management system, parking management module, residential area parking management system, the owner and the payment information module.
Parking map module is mainly to show parking, parking number, owner parking attributes, parking information, etc., and connect to the small database.Parking management module mainly for small database design, form can modify, add, query parking information and parking owner information.Owner and pay cost information module is mainly displayed in a tabular form the car owner information and can modify, add, query, and show the payment information.
The assigned parking map module design and development, according to the actual village planning first, draw the plot plan, and design management system interface.When the mouse the left key click any parking space within the page shows the vehicle position information.
Development tool to select Microsoft Visual c + + 6.0, SQL server2008 database selection combination will be able to complete the development of this system.
Keywords: parking management system Parking map module Microsoft Visual C++6.0 sql server2008
目录
1.课题研究的背景及意义 1
2.需求分析 1
2.1 需要对小区车位进行属性划分 1
2.2 车位信息显示、添加、修改、查询功能 1
2.3缴费信息显示、添加、修改、查询功能 2
2.4车位图显示功能 2
2.5数据库技术 2
3.系统可行性分析 2
4.系统分析 3
4.1 功能模块分析与设计 3
4.2 开发工具选择 3
4.3 数据库设计 4
5.系统设计 4
5.1 系统模块间的切换 4
5.2系统菜单与操作流程 5
5.3 车位图模块设计 7
5.3.1 画出小区平面图 9
5.3.2 系统界面设计 9
5.3.3添加平面图消息响应函数 9
5.3.4 数据库操作 10
5.4系统主要技术特色 11
总 结 11
参考文献 12
致 谢 13
附录A 14
附录B 19
1.课题研究的背景及意义
当今社会经济发展迅速,城市私家车日益普及,各地区的车辆数量增长迅速,小区车辆(汽车)日益增多,车管难度和停车矛盾日趋加剧,使管理小区车位迫在眉睫。
在小区车辆管理过程中,涉及车位管理的信息化、车主管理的信息化、缴费信息管理的信息化,做好信息化工作利于提高小区车辆的管理效率,维护小区车辆的秩序。当前,在小区车辆管理过程中,有许多信息需要处理和管理。甚至尚未使用计算机进行信息处理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于管理过程中的很多信息都是用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。
数据处理手工操作,工作量大,出错率高,出错后不易更改。基于这此问题,我认为有必要建立一个停车场管理系统,使停车场管理工作规范化,系统化,程序化,避免停车场管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改停车场情况。
为了满足小区有车位管理的需求,我们尝试着设计了一个简洁稳定实用的小区车位管理系统。这个系统共分三大模块:车位图模块,车位管理模块,车主和缴费信息模块。
本人负责车位图模块的设计与开发,先根据小区实际规划,画出小区平面图,要在车位管理模块的页面内显示小区平面图,并以此设计管理系统的界面。界面左侧为功能导航,有车位管理和缴费管理,右侧为小区平面图。当鼠标左键点击任意车位时,在页面内显示出该车位的信息:车位编号,车位类型,车主姓名,电话,住址,手机,车牌号,车型。
2.需求分析
随着国家经济间建设的不断发展,国有综合实力的不断提高,小汽车已经逐步走进千家万户。面对汽车时代的来临,住宅小区对于智能停车场要求也将进入一个全新的物业管理模式。小区停车场设施的建设、管理是住宅小区规划管理者日益面临的一个重要课题。为了满足小区有车位管理的需求,我们尝试着设计了一个简洁稳定实用的小区车位管理系统。
2.1 需要对小区车位进行属性划分
系统应当能够显示车位车位的基本属性,如公共车位,私有车位,出租车位。私有车位的特点是使用者固定,。对于私家车位的车辆,系统有着详细的信息记录,包括车辆信息和车主信息。公共车位又可以称为公用车位,它的特点是使用者不固定,针对临时性散客服务。出租车位有车位的业主将自己的车位出租出去,缴费制度与私有车位相同。车位中的私家车位、公共车位和出租车位数目一般情况下是固定不变的。
2.2 车位信息显示、添加、修改、查询功能
系统应当能够显示车位车主的基本信息,并对其进行添加、修改、查询。对于车位的车主,应当有其完整的车位信息:车位编号,车位属性,车主姓名,地址,电话,手机,车牌号,车型。这些信息在售出车位时由管理人员通过添加功能录入,添加后,车位信息及时更新,当要对车位车主信息进行修改时,要用到修改功能;当需要知道具体的车主信息时,可以根据姓名与车位编号进行查询。车位车主信息显示、添加、修改、查询功能由系统的固定模块实现。
2.3缴费信息显示、添加、修改、查询功能
系统应当根据车位车主信息,记录其缴费信息。小型数据库(车位信息表、车主信息表、缴费信息表)的设计,表格形式可修改、添加、查询车位信息和车位业主信息:车位编号、车位属性、显示车位业主简要信息等。车主和缴费信息模块主要以表格形式显示出车位业主信息:姓名、住址、电话、手机、车牌号、车型等并可修改、添加、查询,以及显示缴费信息:开始时间、每季度是否缴费、缴费总数等。车主和缴费信息显示、添加、修改、查询功能由系统的固定模块实现。
2.4车位图显示功能
系统应当能够显示小区平面图,当鼠标左键点击某个车位时,应当显示出该车位的车主和缴费信息,主要显示车位图、车位编号、车位属性、车位业主信息等,并连接到小型数据库。当鼠标左键点击某个车位对应的事件按钮时,应当在弹出窗体显示出该车位的车主和缴费信息,此功能由系统的车位图显示模块实现。
在该模块内,不仅可以通过在车位图中点击相应的车位,还可以通过另外查询方式来找到相应车位的信息,通过查询需要车位号,进行检索。此功能由系统的固定模块实现。
2.5数据库技术
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与车位管理系统的核心。系统应当能够存储车位信息和缴费信息,此功能由数据库实现。
3.系统可行性分析
目前国内外有许多这种类型的软件,小区规划不一,软件的功能却大同小异。公共车位又可以称为公用车位,它的特点是使用者不固定,针对临时性散客服务。出租车位指私家车位车主向其他人租赁自己的车位。私家车位的车辆总是停放在自己的车位上,而不停放在公共车位和出租车位上。车位中的私家车位和公共车位数目一般情况下是固定不变的。对于小区业主,有私家车的,如果停放在小区那么必须购买车位。软件系统记录车位的属性:出租车位、公共车位、私有车位;记录车位的信息:车主姓名、地址、车牌号等;记录缴费信息:开始缴费时间、最后缴费时间、缴费总数等。系统必须可以对相应数据进行添加、查询、修改。因此,车位信息和缴费信息是必须包含的。
大学课程中学习了VC编程软件,Microsoft Visual C++6.0 软件能够实现车位信息和缴费信息的列表显示。通过对数据库的操作,能够实现数据的添加,修改,查询。所以本软件系统的开发是必要的,可行的。
4.系统分析
4.1 功能模块分析与设计
车位图模块的设计与开发,先根据小区实际规划,画出小区平面图,要在车位管理模块的页面内显示小区平面图,并以此设计管理系统的界面。界面左侧为功能导航,有车位管理和缴费管理,右侧为小区平面图。当鼠标左键点击任意车位时,在页面内显示出该车位的信息:车位编号,车位类型,车主姓名,电话,住址,手机,车牌号,车型。系统模块结构图见图4.1。
打开软件
车位图显示
车位信息
缴费信息
默认车位图显示
添加
修改
查询
工具栏
图4.1系统模块结构图
4.2 开发工具选择
Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,Visual C++是一个功能强大的可视化软件开发工具虽然微软公司推出了 Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性。所以实际中,更多的是以Visual C++6.0为平台。
Visual C++6.0不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。
4.3 数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。另外,合理的数据库结构将非常有利于程序的实现。本系统3个模块建立了三个表carlist,如表4.1、4.2、4.3。
表4.1车主信息
列名
数据类型
允许null值
id
Varchar(50)
√
name
Varchar(50)
√
address
Varchar(50)
√
tel
Varchar(50)
√
phone
Varchar(50)
√
carID
Varchar(50)
√
cartype
Varchar(50)
√
表4.2车位信息
列名
数据类型
允许null值
id
int
type
Varchar(50)
√
number
int
owner
Varchar(50)
√
表4.3缴费信息
列名
数据类型
允许null值
userid
int
start
Varchar(50)
total
Varchar(50)
√
ispay
Varchar(50)
√
5.系统设计
5.1 系统模块间的切换
本系统分为三个模块,分别是:小区车位管理系统——车位图模块,小区车位管理系统——车位管理模块,小区车位管理系统——缴费信息模块。系统的主界面是车位图模块和功能导航,在功能导航内有链接车位管理模块和缴费信息模块的触发按钮,点击之后分别弹出新的窗口,显示着两个模块的信息。
5.2系统菜单与操作流程
系统菜单如图5.1。
图5.1 系统菜单
车主及缴费信息模块的表单形式,如图5.2和图5.3。
图5.2车位信息
图5.3 车主及缴费信息
系统操作流程图如图5.4。
图5.4 系统操作流程图
在车位管理模块下,按添加按钮,输入车位信息。
按修改按钮,输入要修改车位信息的车位编号,按检查按钮,启用确定按钮。
按查询按钮,选择查询方式:车位编号查询、车主姓名查询,点击查询。
在车主及缴费信息模块下,输入业主姓名,按查询按钮,查询要缴费信息的车主信息及车位状态。
在此模块下,添加、修改、查询功能大同小异,用户很容易掌握。
5.3 车位图模块设计
本系统菜单中的车位图显示模块,需要载入小区平面图,对于图中的车位,当鼠标左键点击窗体右侧所示相应的车位(1~42),窗体左侧则会显示小区平面图对应出的车位信息(eg.车位编号,车位类型,姓名,住址等)。如图5.5、5.6。
图5.5小区平面图
图5.6点击1号车位信息图
此时鼠标左键点击的是平面图上的车位1。视图中显示了车位信息。
5.3.1 画出小区平面图
本系统的小区平面图是用Windows自带的画图共具与photoshop工具结合完成。由于本系统所需的图是在主视图中显示,主要是为了响应鼠标左键信息,以显示车位信息。我们只需要图片当做背景,同时在对话框中添加相应的车位编号,调整好位置,然后点击各个车位对应响应按钮,即可在车位信息对话框中显示车位的信息。
5.3.2 系统界面设计
1、 给窗体添加背景
VC是一个功能强大的可视化的开发工具,与单文档窗口应用程序中改变框架窗口的背景方法不同,对多文档窗口应用程序中的主框架窗口改变背景不能简单地用ClassWizard重载OnEraseBkgnd(CDC* pDC)函数的方法实现。使用MFC AppWizard向导创建一个多文档窗口应用程序,向应用程序添加位图,用ClassWiard生成一个 CWnd 类的派生类CclientWnd。
void CLooParkInfoDlg::OnPaint()
{
......
}
5.3.3添加平面图消息响应函数
目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构。这种程序框架与简单程序框架之间的重要区别就在于形成应用程序的主窗口不只需要一个类的对象,而是需要3个对象:框架窗口类(CFrameWnd)对象,视图类(CView)对象,文档类(CDocument)对象。
1、点击车位管理显示相应的触发事件:
void CCarMangementDlg::OnParking()
{
......
}
2、点击缴费管理显示相应的触发事件:
void CCarMangementDlg::OnPay()
{
......
}
HBRUSH CCarMangementDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
......
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
3、点击相应1号车位编号显示车位信息的触发事件:
void CCarMangementDlg::OnPark1()
{
......
}
详细代码见附录A。
5.3.4 数据库操作
目前Windows系统上常见的数据库接口包括:1、ODBC(开放数据库互连)2、MFC(Microsoft基础类)ODBC类3、DAO(数据访问对象)4、RDO(远程数据对象)5、OLE DB(对象链接嵌入数据库)6、ADO(ActiveX数据对象)
通过VC编程工具进行数据库开发过程中,本系统连接SQL Server数据库采用的是ADO数据库连接方式,VC通过调用MFC类库封装的DAO方法和ADO方法进行数据库编程操作。 连接数据库:
CDatabase::CDatabase()
{
::CoInitialize(NULL);
HRESULT hr;
hr = m_pConnection.CreateInstance(_uuidof(Connection));
if (FAILED(hr))
{
::AfxMessageBox("Connection实例失败!");
}
m_pCommand.CreateInstance(_uuidof(Command));
m_pRecord.CreateInstance(_uuidof(Recordset));
try
{
_bstr_t str = "Provider=SQLOLEDB.1;Integrated Security=SSPI; Data Source=WIN-DS9SMRN9DIO;Initial Catalog=CarMangement;uid=sa; pwd=123456";
hr = m_pConnection->Open(str,"","",adModeUnknown);
}
catch (_com_error e)
{
::AfxMessageBox(e.Description());
}
}
CDatabase::~CDatabase()
{
}
5.4系统主要技术特色
本系统操作简单,界面简洁,对用户专业操作知识要求低,任何接受过9年义务教育的用户都能够操作,并在工具栏处添加了添加、修改、查询的快捷方式,简单、明了。
在车位图显示模块中,载入了小区的平面图,为了能够直观的查看车位信息,当用鼠标左键点击相应车位时,平面图左方会显示该车位的详细信息,包括车位编号、车位属性,车主信息,缴费信息等。
总 结
本设计选题为小区车位管理系统,是为了解决小区私家车数量快速增加,车管难度和停车矛盾日增加的问题。
这个系统共分三大模块:小区车位管理系统——车位图模块,小区车位管理系统——车位管理模块,小区车位管理系统——车主和缴费信息模块。
车位图模块主要显示车位图、车位编号、车位属性、车位业主信息等,并连接到小型数据库。车位管理模块主要为小型数据库(车位信息表、车主信息表、缴费信息表)的设计,表格形式可修改、添加、查询车位信息和车位业主信息:车位编号、车位属性、显示车位业主简要信息等。车主和缴费信息模块主要以表格形式显示出车位业主信息:姓名、住址、电话、手机、车牌号、车型等并可修改、添加、查询,以及显示缴费信息:开始时间、每季度是否缴费、缴费总数等。
本系统是在开发工具Visual C++ 6.0与数据库sql server2008的开发环境下用C++语言开发的,这是本人在大学期间设计开发的第一个比较完整的系统,包含软件菜单,MFC使用,windows系统原理和数据库的设计和实现。通过本系统的开发工作,深化了在课堂上所学的专业知识,更加深刻的认识了软件开发的整体过程,开发技巧,认识到了面向对象语言在开发大型软件上占据的有力条件。
本系统的不足之处在于系统界面简单,不够美观。小区平面图为手工绘制,没有用到绘图函数,在获取车位的坐标时,采用了逐个点击的方式,这种方式适用于车位较少的情况,车位较多的情况下,应使用开发工具自带的绘图函数进行绘图。这个问题虽然为本次设计留下了一些遗憾,但同时也为以后的学习和工作积累了一点经验。
参考文献
[1] 郭暤岩.屈景辉.廖琪梅.《Windows程序设计教程》第2版.北京人民邮电出版社.
[2] 徐孝凯. C++语言基础教程. 清华大学出版社. 2006
[3] 张荣梅. Visual C++实用教程. 中国铁道出版社. 2008.9
[4] SQL SERVER 2008数据库程序设计.作者:高冬梅.出版社:机械工业出版社. 2009
[5] Jocy Geogre.Dinesh Batra.Joseph Valacich.Jeffrey Hoffer著.龚晓庆等译.《Object-Oriented Systems Analysis and Design》第2版.北京清华大学出版社. 2008
[6]李博轩.《Visual C++图形用户界面开发指南》第2版.北京清华大学出版社.2000
致 谢
在做课程设计期间,我遇到了不少困难,专业知识不好够扎实,给我带来很多困扰,也让我深深的后悔以前没有认真学习专业知识。于是我努力查找资料,与小组成员讨论,向冯老师请教自己在做设计期间遇到的问题。终于在大家的帮助和自己的努力下,完成了毕业设计,也为我的四年大学划上了圆满的句号。
在这里我非常感谢我的导师冯永老师。在最初选到这个课题时,我毫无思路,是冯永老师非常耐心的讲解使我迈出第一步,在接下来的日子里,当我有问题向冯永老师请教时,无论老师在工作还是休息,都会耐心的给我解答。谢谢老师对我的教导。
同时也感谢我们的小组成员,感谢我身边的同学们,谢谢他们在我做毕业设计期间对我生活上和学习上的帮助。
最后我想感谢大学四年教育我的各位老师,感谢他们不仅传授我知识,更教予我做人的道理,将来走出校门,无论我走到哪里,这些人生箴言都会伴随着我,向各位老师献上我最真诚的敬意和谢意。
附录A
#include "stdafx.h"
#include "CarMangement.h"
#include "CarMangementDlg.h"
#include "ParkDlg.h"
#include "PayInfoDlg.h"
#include "LooParkInfoDlg.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:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCarMangementDlg dialog
CCarMangementDlg::CCarMangementDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCarMangementDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCarMangementDlg)
// 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 CCarMangementDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCarMangementDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCarMangementDlg, CDialog)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCarMangementDlg message handlers
BOOL CCarMangementDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
//设置背景图片
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_brBk.CreatePatternBrush(&bmp);
bmp.DeleteObject();
return TRUE; // return TRUE unless you set the focus to a control
}
void CCarMangementDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
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,
// this is automatically done for you by the framework.
void CCarMangementDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device 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 calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CCarMangementDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
//车位管理触发的事件
void CCarMangementDlg::OnParking()
{
CParkDlg parkDlg;
parkDlg.DoModal();
}
//缴费管理触发的事件
void CCarMangementDlg::OnPay()
{
CPayInfoDlg pay;
pay.DoModal();
}
HBRUSH CCarMangementDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HB
展开阅读全文