Download presentation
Presentation is loading. Please wait.
Published byTrương Kim Modified 5年之前
1
第5章 文本与字体 2019/2/15 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/2/15 Huang Weitong
2
第5章 文本与字体 2019/2/15 第十二章 菜单类及其应用 2019/2/15 Huang Weitong
3
内容提要 菜单类简介 菜单类控件的应用 2019/2/15
4
第5章 文本与字体 2019/2/15 § 菜单类简介 2019/2/15 Huang Weitong
5
1.菜单 菜单是用户与应用程序交互的最常用手段。 菜单存放在资源脚本中,在程序运行时调用。 一个菜单项必须包含两部分:
第5章 文本与字体 2019/2/15 1.菜单 菜单是用户与应用程序交互的最常用手段。 菜单存放在资源脚本中,在程序运行时调用。 一个菜单项必须包含两部分: 菜单项名称——字符串构成,如file 菜单项标识符ID——整数值,可用整数常量表示 菜单标识符ID在资源的头文件Resource.h中定义,前缀IDM指明是菜单项,如: #define IDM_MENU1 129 在菜单资源,必须链接到类中,通过提供类方法来处理每个菜单项。 ,, 2019/2/15 Huang Weitong
6
2. 菜单结构 菜单模板用一种很简单的结构在资源脚本文件中定义,一个菜单资源模板实例如下:
IDR_MENU1 MENU DISCARDABLE BEGIN POPUP "&File" //定义File菜单 BEGIN //菜单File定义开始 MENUITEM "&Voice", IDC_VOICE_MENU //菜单项 MENUITEM "&Show", IDC_SHOW_MENU //菜单项 MENUITEM SEPARATOR //分隔线 MENUITEM "&Exit", IDC_EXIT_MENU //菜单项 END //菜单File定义结束 POPUP "&Help" //定义Help菜单 BEGIN //菜单Help定义开始 MENUITEM "&About", IDC_ABOUT_MENU //菜单项 END //菜单Help定义结束 END 2019/2/15
7
3. CMenu类 CMenu类是Cobject类直接派生的。 CMenu类提供了许多处理菜单和菜单项的方法: 构造方法; 菜单操作方法;
菜单项操作方法; 虚拟方法。 2019/2/15
8
3. CMenu类(续) 构造方法用于建立Windows菜单,并在运行时将它们附加到CMenu对象上, 2019/2/15
9
3. CMenu类(续) 菜单操作方法用于处理菜单的顶层操作,只有两个方法:
DeleteMenu()删除指定的菜单项(包括附属的级连菜单项); TrackPopupMenu()在一个指定的位置显示一个快捷菜单。 2019/2/15
10
3. CMenu类(续) 菜单操项作方法有多种用于处理指定菜单项操作 2019/2/15
11
第5章 文本与字体 2019/2/15 § 菜单类编程实例 2019/2/15 Huang Weitong
12
1.应用程序的实现功能 单击Vioce选项,可听到PC机喇叭发出蜂鸣声
主窗口标题为Application of Menu。 有三个按钮:Voice、Show和Exit 。 有两个菜单:File和Help。 File下拉出三个菜单项:Voice、Show和Exit 。 单击Vioce选项,可听到PC机喇叭发出蜂鸣声 单击Show,则弹出对话框,显示信息“This is a Sample of adding menu”。 单击Exit,则退出。 2019/2/15
13
主窗口布局如下图; 2019/2/15
14
2.编程过程 建立工程文件:用MFC AppWizard(exe) 可视化编程: 工程项目名称:Menu
建立主窗口标题为Application of Menu的应用程序。 可视化编程: 设计界面 连接变量 修改特性 添加代码 2019/2/15
15
3.界面设计 在Menu的工作区中选择ResourceView
在名为IDD_MENU_DIALOG的对话框作为应用程序的主窗口中进行界面设计。 对话框中按钮的设计 借助于工具窗,在主窗口中安排三个命令按钮。 在命令按钮上单击右键,选Propertires 在Puch Button Propertires的General上,输入相应的ID和Caption 重复三次,完成了三个按钮的设计。 2019/2/15
16
3.界面设计(续) 设计的三个按钮属性 对 象 ID Caption 命令按钮 IDC_VOICE_BUTTON &Voice
命令按钮 IDC_SHOW_BUTTON &Show 命令按钮 IDC_EXTT_BUTTON &Exit 2019/2/15
17
对话框中菜单的设计 (a)Insert Resource 对话框
插入资源Insert->Resource,显示nsertResource对话框 在资源列表选择Menu项 单击按钮New ,在资源文件Menu.rc中增加一项菜单资源。 (a)Insert Resource 对话框 (c)单击按钮New, 加一菜单资源 (b) 选择 Menu项 2019/2/15
18
4. 给菜单连接一个类 作为一个对象,菜单必须与一个类连接。 这个菜单是对话框中的一个资源,将它与对话框的派生类CMenuDlg相连接。
菜单IDR_MENU1 连接了一个类,可调用该类的成员函数和成员变量。 2019/2/15
19
5.连接菜单和应用程序的主窗口 为了在主窗口中显示菜单,菜单还应连接主窗口。 菜单与主窗口对话框(即IDD_MENU_DIALOG)的连接:
在Menu的工作区的Resource View选项卡中,双击Dialog文件夹中的IDD_MENU_DIALOG,弹出IDD_MENU_DIALOG对话框。 在对话框内,单击鼠标右键,在快捷菜单中选择Properties命令,在对话框中的Menu组合框中选择IDD_MENU1 2019/2/15
20
6.应用程序的代码编程 (1) 给菜单File的Exit选项编写代码 void CMenuDlg::OnExitMenu() {
OnOK(); } (2) 给File菜单的Voice项连接代码 void CMenuDlg::OnVioceMenu() { MessageBeep((WORD)-1); DWORD iTime=GetCurrentTime() while(GetCurrentTime()< iTime+500) MessageBeep((WORD)-1);//间隔500毫秒,发出一声蜂鸣 } 2019/2/15
21
(4) 给Help菜单的About项连接代码
(3) 给File菜单的Sh ow项连接代码 void CMenuDlg::OnShowMenu() { MessageBox(”This is sample of adding a menu.”); } (4) 给Help菜单的About项连接代码 void CMenuDlg::OnAboutMeenu() { MessageBox(”This is a sample.”); } 2019/2/15
22
(5) 给命令按钮连接代码 void Cmenudlg::OnVioceButton() { OnVioceMenu(); }
第5章 文本与字体 (5) 给命令按钮连接代码 2019/2/15 void Cmenudlg::OnVioceButton() { OnVioceMenu(); } void CMenuDlg::OnShowButton() OnShowMenu(); void CMenuDlg::OnExitButton() OnExitMenu(); 2019/2/15 Huang Weitong
23
(第十二章) 完 2019/2/15
24
第12章课后练习题 编写一个程序,对每组4个元素的10组数据进行管理,用下拉菜单操作实现功能包括: [注]5月14日前完成 输入修改数据;
显示一组数据; 对一组数据求: 最大值; 最小值; 平均值; 均方差; [注]5月14日前完成 2019/2/15
Similar presentations