
3.5 登录模块设计

视频讲解
3.5.1 登录模块概述
为了防止非法用户进入系统,本软件设计了系统登录窗口。在程序启动时,首先弹出“登录”窗口,要求用户输入登录信息,如果用户输入不合法,将禁止进入系统。登录模块的运行效果如图3.14所示。

图3.14 登录模块的运行效果
3.5.2 登录模块技术分析
本模块使用CUserset类实现对数据源的连接。这里是通过ODBC数据源进行连接的,在连接数据库之前,要先在系统上创建一个名为myhotel的数据源。userset.cpp中的代码如下:

3.5.3 登录模块实现过程
本模块使用的数据表:usertalbe
(1)选择Insert→Resource命令,打开添加资源界面。选择Dialog选项,单击New按钮,插入新的对话框。
(2)利用类向导为此对话框资源设置属性。在Name文本框中输入对话框类名,如CLoginDlg,在Base class下拉列表框中选择一个基类,这里为CDialog,单击OK按钮创建对话框。
(3)在工作区的资源视图中选择新创建的对话框,向对话框中添加静态文本、下拉列表框、编辑框和按钮等资源。主要资源属性如表3.3所示。
表3.3 主要资源属性

(4)建立和数据库的映射,利用类向导建立记录集的映射类,如图3.15所示。
选择基类为CDaoRecordset,单击OK按钮进入下一步,如图3.16所示。

图3.15 New Class对话框

图3.16 Database Options对话框
选择数据源类型为ODBC,并选择所使用的数据源,此处选择myhotel数据源,单击OK按钮,进入下一步,如图3.17所示。
选择所要关联的数据表,因为是操作员登录信息,所以选择dbo.usertable数据表,单击OK按钮完成映射。
可以看到已经创建了一个新类CUserset,其头文件的关键代码如下:

图3.17 Select Database Tables对话框

(5)单击“确定”按钮可以登录到系统主界面,此按钮的相应函数如下:

(6)为使按下Enter键时控制输入焦点,故加入PreTranslateMessage方法,代码如下:

(7)登录模块与数据库连接代码如下:

(8)在登录界面中,需要对图片有限制,在LoginDlg.cpp文件中,写入如下代码:
