当前位置首页 > 计算机 > 编程与开发语言
搜柄,搜必应! 快速导航 | 使用教程

面向对象与可视化程序设计--VisualC编程主讲教师唐

文档格式:PPT| 30 页|大小 371KB|2024-12-14 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 30
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • Click to edit Master title style,Click to edit Master text styles,Second Level,Third Level,Fourth Level,Fifth Level,*,*,*,面向对象与可视化程序设计-Visual C+编程主讲教师:唐 龙教授 计算机科学与技术系黄维通博士 计算机与信息管理中心清 华 大 学2001年2月,12/14/2024,1,第十二章,菜单类及其应用,12/14/2024,2,内容提要,菜单类简介,菜单类控件的应用,12/14/2024,3,12.1.菜单类简介,12/14/2024,4,,,1.菜单,菜单是用户与应用程序交互的最常用手段菜单存放在资源脚本中,在程序运行时调用一个菜单项必须包含两局部:,菜单项名称字符串构成,例如:file,菜单项标识符ID整数值,可用整数常量表示,菜单标识符ID在资源的头文件Resource.h中定义,前缀IDM指明是菜单项,如:,#define IDM_MENU1 129,在菜单资源,必须链接到类中,通过提供类方法来处理每个菜单项12/14/2024,5,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,2.菜单结构,菜单模板用一种很简单的结构在资源脚本文件中定义,一个菜单资源模板实例如下:,12/14/2024,6,3.CMenu类,CMenu,类是,Cobject,类直接派生的。

    CMenu,类提供了许多处理菜单和菜单项的方法:,构造方法;,菜单操作方法;,菜单项操作方法;,虚拟方法12/14/2024,7,3.CMenu类续,构造方法用于建立Windows菜单,并在运行时将它们附加到,CMenu,对象上,,12/14/2024,8,3.CMenu类续,菜单操作方法用于,处理菜单的顶层操作,,,只有两个方法:,DeleteMenu()删除指定的菜单项(包括附属的级连菜单项);,TrackPopupMenu()在一个指定的位置显示一个快捷菜单12/14/2024,9,3.CMenu类续,菜单项操作方法有多种用于处理指定菜单项操作,12/14/2024,10,12.2.菜单类编程实例,12/14/2024,11,1.应用程序的实现功能,主窗口标题为Application of Menu有三个按钮:Voice、Show和Exit有两个菜单:File和HelpFile下拉出三个菜单项:Voice、Show和Exit单击Vioce选项,可听到PC机喇叭发出蜂鸣声,单击Show,那么弹出对话框,显示信息“This is a Sample of adding menu单击Exit,那么退出。

    12/14/2024,12,主窗口布局如以下图;,12/14/2024,13,2.编程过程,建立工程文件:用MFC AppWizard(exe),工程工程名称:Menu,建立主窗口标题为Application of Menu的应用程序可视化编程:,设计界面,连接变量,修改特性,添加代码,12/14/2024,14,3.界面设计,在,Menu,的工作区中选择,ResourceView,在名为,IDD_MENU_DIALOG,的对话框作为应用程序的主窗口中进行,界面设计,对话框中按钮的设计,借助于工具窗,在主窗口中安排三个命令按钮在,命令按钮,上单击,右,键,选,Propertires,在,Puch Button Propertires,的,General,上,输入相应的,ID,和,Caption,重复三次,完成了三个按钮的设计12/14/2024,15,3.界面设计续,设计的三个按钮属性,对 象,IDCaption,命令按钮,IDC_VOICE_BUTTON&Voice,命令按钮,IDC_SHOW_BUTTON&Show,命令按钮,IDC_EXTT_BUTTON&Exit,12/14/2024,16,(a),Insert,Resource,对话框,(b)选择,Menu,项,(c)单击按钮,New,,加一菜,单资源,对话框中菜单的设计,插入资源,Insert,-,Resource,,显示,nsertResource,对话框,在资源列表选择,Menu,项,单击按钮,New,,在资源文件,Menu.rc,中加一菜单资源。

    12/14/2024,17,4.给菜单连接一个类,作为一个对象,菜单必须与一个类连接这个菜单是对话框中的一个资源,将它与对话框的派生类,CMenuDlg,相连接菜单,IDR_MENU1,连接了一个类,可调用该类的成员函数和成员变量12/14/2024,18,5.连接菜单和应用程序的主窗口,为了在主窗口中显示菜单,菜单还应连接主窗口菜单与主窗口对话框(即,IDD_MENU_DIALOG,)的连接:,在,Menu,工作区的,Resource View,选项卡中,双击,Dialog,文件夹中的,IDD_MENU_DIALOG,,弹出,IDD_MENU_DIALOG,对话框在对话框内,单击鼠标右键,在快捷菜单中选择,Properties,命令,在对话框中的,Menu,组合框中选择,IDD_MENU1,12/14/2024,19,(1)给菜单File的Exit选项编写代码,void CMenuDlg:OnExitMenu,OnOK;,6.应用程序的代码编程,(2)给File菜单的Voice项连接代码,void CMenuDlg:OnVioceMenu,MessageBeepWORD-1;,DWORD iTime=GetCurrentTime,whileGetCurrentTime AppWizard Step 1 -Dialog based,(2)给对话框添加菜单。

    Insert-Resource,在Resource type-Menu-New按钮为应用程序添加菜单资源-设置菜单项属性,各菜单项的属性如表所示,对象IDCaption,菜单时间(&T),菜单项ID_YEAR_MENU年、月、日(&D),菜单项ID_HOUR_MENU小时、分钟、秒(&H),菜单项ID_EXIT_MENU退出(&X),12/14/2024,24,-在菜单上单击鼠标右键,-在弹出菜单中选ClassWizard,-出现了Add Class对话框,-选择Select an existing calss选项,单击OK按钮,,-在弹出的对话框中选择CMy12_5Dlg类,这样就把菜单参加到对话框类中在Resource View选项卡中翻开Dialog资源组,双击IDD_MY12_5_DIALOG,如以下图鼠标右键-Properties菜单项,,在Menu列表框中选择编辑过的,菜单的ID:ID_MENU1这样,就把菜单参加到对话框中12/14/2024,25,ID变量,ID_YEAR_EDITm_Year_Edit,ID_MONTH_EDITm_Month_Edit,ID_DAY_EDITm_Day_Edit,ID_HOUR_EDITm_Hour_Edit,ID_MINUTE_EDITm_Minute_Edit,ID_SECOND_EDITm_Second_Edit,ID_EXIT_BUTTONE&xit,12/14/2024,26,菜单项的消息处理函数,菜单项ID消息消息处理函数,ID_YEAR_MENUCOMMANDOnYearMenu(),ID_HOUR_MENUCOMMANDOnHourMenu(),ID_EXIT_MENUCOMMANDOnExitMenu(),void CMy12_5Dlg:OnYearMenu()/给“年、月、日菜单项消息处理函数,struct tm*newtime;/定义tm结构,存贮时间,time_t long_time;/定义保存时间的变量,char buffer10;,time(/获取时间,newtime=localtime(/时间转换,/将年月日输出到编辑框中.,_itoa(newtime-tm_year+1900,buffer,10);/tm_year是当前年份和1900之差,m_Year_Edit.SetWindowText(LPCTSTR)(buffer);,_itoa(newtime-tm_mon+1,buffer,10);/tm_mon是当前月份,m_Month_Edit.SetWindowText(LPCTSTR)(buffer);,_itoa(newtime-tm_mday,buffer,10);/tm_mday是当前日,m_Day_Edit.SetWindowText(LPCTSTR)(buffer);,12/14/2024,27,void CMy12_5Dlg:OnHourMenu()/给菜单项“小时、分、秒参加代码,struct tm*newtime;/定义tm结构,保存时间,time_t long_time;/定义保存时间的长整型变量,char buffer10;,time(/获取时间,newtime=localtime(/时间转换,/将小时,分钟,秒输出到编辑框中.,_itoa(newtime-tm_hour,buffer,10);/tm_hour是当前小时,m_Hour_Edit.SetWindowText(LPCTSTR)(buffer);,_itoa(newtime-tm_min+1,buffer,10);/tm_min是当前分钟,m_Minute_Edit.SetWindowText(LPCTSTR)(buffer);,_itoa(newtime-tm_sec,buffer,10);/tm_sec是当前秒,m_Second_Edit.SetWindowText(LPCTSTR)(buffer);,12/14/2024,28,(第十二章),完,12/14/2024,29,第11-12章课后练习题,编写一个程序,对每组4个元素的10组数据进行管理,用用按键/下拉菜单操作实现功能包括:,输入修改数据;,显示一组数据;,对一组数据求:,最大值;,最小值;,平均值;,均方差,;,注,11月12日,前完成,12/14/2024,30,。

    点击阅读更多内容
    卖家[上传人]:ranfand
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档