- C++项目开发全程实录(第2版)
- 明日科技编著
- 610字
- 2025-02-27 20:09:46
3.4 主窗体设计

视频讲解
3.4.1 主窗体概述
主程序界面是应用程序提供给用户访问其他功能模块的平台,根据实际需要,客房管理系统的主界面采用了传统的“菜单/工具栏/状态栏”风格。客房管理系统的主程序界面如图3.2所示。
3.4.2 主窗体实现过程
1.客户区设计
在生成的对话框内添加图片、静态文本、标签、编辑框和按钮等资源。
控件的属性和ID如表3.1所示。
表3.1 控件的属性和ID

2.菜单设计
(1)选择Insert→Resource命令,打开Insert Resource对话框,如图3.12所示。
(2)选择Menu选项,单击New按钮,插入空白菜单,设置ID属性为IDR_mainMENU,然后按照如图3.13所示的界面编辑菜单项。

图3.12 Insert Resource对话框

图3.13 菜单资源
主菜单的各个子菜单的ID和标题属性如表3.2所示。
表3.2 各个子菜单的ID和标题属性

3.代码分析
(1)系统主界面操作可以根据用户的权限设定,所以应加入连接数据库功能,故在stdafx.h文件中加入以下代码,提供加入ADO的支持。
//添加ADO支持 #import "c:\program files\common files\system\ado\msado15.dll" \ no_namespace \ rename ("EOF", "adoEOF")
并在Myhotel.h中加入以下代码:
CDatabase m_DB; _ConnectionPtr m_pConnection;
此外,在myhotel.cpp的初始化函数中加入连接数据库的代码:

(2)主窗口初始化时,需要根据登录操作员的权限来设置其可以进行的操作,此功能由函数setuserability()来完成,代码如下:


代码贴士
❶ GetMenu函数:获得窗口的菜单指针,能对子窗口使用,因为它们没有菜单。返回的指针可能是临时的,不能被保存以供将来使用。
(3)在实现主窗体时,需要创建几个函数,创建OnSysCommand函数的代码如下:

创建OnPaint()函数,代码如下:

创建OnQueryDragIcon()、OnMENUcheckinreg()、OnBTNborrowroom()函数,代码如下:

创建OnMENUroomsetting()、OnMENUcheckout()、OnBTNreturnroom()函数,代码如下:

创建OnMENUaddmoney()、OnMENUchangeroomreg()、OnMENUfindroom()函数,代码如下:
