C++项目开发全程实录(第2版)
上QQ阅读APP看书,第一时间看更新

2.8 开台模块设计

视频讲解

2.8.1 开台模块概述

开台是餐饮系统中前台的第一个服务,顾客前来就餐时,卖家第一步应做的就是开台,开台模块应该直观地为用户展示当前空桌的情况,提高用户工作效率。开台模块的运行效果如图2.34所示。

图2.34 开台模块的运行效果

2.8.2 开台模块技术分析

在开台模块中,主要涉及对列表控件的使用,以及如何将数据表中的数据导入到列表控件中。在营业员为顾客进行选桌服务时,在餐桌使用情况信息表中双击要开台的桌台,即可将此桌台的桌号信息添加到“选择桌号”文本框中,大大地方便了使用者。要实现此功能,首先要在消息对话框左边的控件名称中找到列表控件,再在右边的事件中选择NM_DBLCLK事件,并为其添加相应的代码。在获取数据前,系统要先获取用户双击选项的位置信息,可通过GetSelectionMark方法实现,再通过GetItemText方法获取当前位置的文本。这两个方法的语法如下:


     int GetSelectionMark();

返回的是位置所在的行号,-1表示没有位置。


     CString GetItemText(int nItem, int nSubItem)

 nItem:表示位置所在行号。

 nSubItem:表示列号。

2.8.3 开台模块实现过程

 本模块使用的数据表:TableUse

(1)在Resources选项卡中插入一个对话框资源,为对话框新建一个类CKaitaidlg,向对话框中添加一个静态文本控件、一个列表控件和一个编辑框控件,在类中定义一个_RecordsetPtr类型变量m_pRs,并导入全局变量theApp。控件的属性及变量设置如表2.4所示。

表2.4 控件属性及变量设置

(2)为类添加WM_INITDIALOG事件并添加代码,进行对话框初始化设置并对列表控件的样式及内容进行设置,代码如下:

代码贴士

❶ SetIcon:该方法用于设置窗口图标,TRUE是大图标,FALSE是小图标。

❷ SetExtendedStyle:该方法可以为列表控件设置需要的风格。

❸ InsertItem:向列表控件中插入行。

(3)选择餐台号时不仅可以手动输入,而且要实现双击列表控件中的餐台号能直接将餐台号读进编辑框控件中。在消息管理器中选择列表控件的双击事件(NM_DBLCLK),添加函数并对其添加代码:

运行后双击列表控件中的餐台号,系统自动将该桌台号的信息显示在下面的编辑框控件中。

(4)完成了界面效果的编辑,下一步对按钮控件进行编码。用户在单击“就要这桌”按钮时,系统应该先判断编辑框中输入的数据是否合法,如果不合法,则弹出输入错误的提示;如果合法,则弹出输入成功的提示,并进入“点菜”对话框。

说明

模块中涉及弹出“点菜”对话框的功能,故类中应包含点菜模块(CDiancaidlg)的头文件。点菜模块将在2.9节介绍,希望读者将这两节联系到一起阅读,方便理解。

“就要这桌”按钮的单击事件代码如下:

“返回上层”按钮的单击事件其实就是关闭当前对话框,代码如下:


     CDialog::OnCancel();