• 沒有找到結果。

一、实训目的与要求

1.熟悉菜单编辑器与工具栏编辑器的操作方法。

2.掌握菜单项助记符与热键的使用。

3.掌握通过菜单调用对话框的方法。

4.学习工具按钮与菜单项命令相结合的方法。

二、实训内容

1.设计一个具有单文档界面的简易学生成绩处 理系统,要求:

(1)处理前需要进行用户身份认证,如图 1.14 所示。

(2)通过主界面的菜单或工具栏调用成绩录入

和处理对话框,主界面如图 1.15 所示。 图 1.14 登录界面

图 1.15 主界面 菜单格式与功能如表 1.1 所示。

表 1.1 菜单格式与功能

成绩处理(S) 关于(A)

录入并计算(O) Ctrl+O 系统信息(S)

————

退出(S) Alt+F4 成绩录入和处理界面如图 1.16 所示。

图 1.16 成绩输入与计算界面 系统信息界面如图 1.17 所示。

图 1.17 系统信息界面

三、实验设备及环境 1.每人一台 PC 机器。

2.每台机器上安装 Visual C++开发环境、Office 软件、WinRAR 或 WinZIP。

3.网络畅通。

4.投影仪一台。

四、实训步骤

1.利用 MFC AppWizard(exe)创建一个工程名称为 SY_Dlg 的单文档应用程序,并将标题 改为“简易学生成绩处理系统”,单击“完成”按钮后再单击“确定”按钮即进入开发环境。

2.单击 ResourceView 选项卡→SY_Dlg resources→Menu→IDR_MAINFRAME,打开菜单 编辑器,按实训要求修改现有菜单,并将“录入并计算”菜单的 ID 设为 ID_MENU_IN;“退 出”菜单的 ID 设为 ID_MENU_EXIT。

注意:此时编译新增的菜单是灰色的。

3.单击 ResourceView 选项卡→Accelerator→IDR_MAINFRAME,为新增菜单添加快捷键,

如图 1.18 所示。

图 1.18 “Accel 属性”对话框

4.单击 ResourceView 选项卡→Dialog→IDD_ABOUTBOX,修改系统信息界面。

5.单击 ResourceView 选项卡,右击 Dialog,在弹出的快捷菜单中选择“插入 Dialog”选 项,为程序添加用户身份认证与成绩录入对话框,如图 1.19 所示。

图 1.19 Dialog 的快捷菜单

修改标题,删除其中的“确定”和“取消”按钮,并按实训要求的界面图进行修改。

按 Ctrl+W 组合键打开 MFC ClassWizard 对话框,为登录界面对话框(IDD_DIALOG1)

与成绩处理对话框(IDD_DIALOG2)分别建立新类,类名为 CDlgPw 和 CdlgIn,然后选择 CDlgIn 类并切换到 Member Variables 选项卡,用前面所学知识为控件连接变量并为“计算”和“返回”

按钮编写相应的代码。

void CDlgIn::OnButton1() {

// TODO: Add your control notification handler code here UpdateData(true);

m_pj=(m_sx+m_yw+m_yy)/3.0;

UpdateData(false);

}

void CDlgIn::OnButton2() {

// TODO: Add your control notification handler code here OnOK();

}

为登录界面对话框(IDD_DIALOG1)的编辑框分别连接 CString 类型的变量:m_username 和 m_password。

6.建立对话框与菜单的联系。

按 Ctrl+W 组合键打开 MFC ClassWizard 对话框,选择类名 CMainFrame,选择 Object IDs 为 ID_MENU_IN,添加 COMMAND 消息,代码分别如下:

CDlgIn dlg; //创建对话框对象

dlg.DoModal(); //打开成绩输入窗口,注意要在首部添加#include "DlgIn.h"

选择 Object IDs 为 ID_MENU_EXIT,添加 COMMAND 消息,代码如下:

exit(0);

7.单击 ResourceView 选项卡→Toolbar→IDR_MAINFRAME,为新增菜单项设置工具图 标;然后双击图标,在弹出的属性窗口中选择图标对应的 ID 分别为 ID_MENU_IN 和 ID_MENU_EXIT,提示为:请输入学生成绩\n 输入成绩并计算、结束系统一行,以与菜单同 步,如图 1.20 所示。

图 1.20 工具栏图标编辑窗口

8.单击 ClassView 选项卡→CSY_DlgApp→InitInstance,在此启动主窗体前添加设置启动 界面的程序代码:

CDlgPw dlg; // 注意在程序首部加上#include "DlgPw.h"

BOOL K=TRUE;

while (K) //建立循环,以便当输入错误后重输

if (dlg.DoModal() == IDOK) //用户单击“确定”按钮

if (dlg.m_password!="123" || dlg.m_username!="wyg") //设定用户名为 wyg,密码为 123 AfxMessageBox("输入有误,请重输!",MB_OK|MB_ICONERROR);

else K=false; //输入正确退出循环 else return FALSE; //用户单击“退出”按钮 9.编译、连接并运行。

五、注意事项

1.删除现有菜单,只需在菜单编辑器中右击该菜单,在弹出的快捷菜单中选择“剪切”

选项;而删除工具栏中的按钮是将该按钮拖离工具栏,而不能按 Del 键。

2.将编辑框属性对话框“样式”选项卡中的“密码”选中,则输入时用“*”号代替输 入内容,可避免密码泄露。

六、拓展与思考

1.菜单有哪些常用的规则?如何为菜单项设计助记符与快捷键?

2.如何使一个工具按钮与菜单项命令相结合?

相關文件