面向对象与可视化程序设计VisualC编程主讲教师_第1页
面向对象与可视化程序设计VisualC编程主讲教师_第2页
面向对象与可视化程序设计VisualC编程主讲教师_第3页
面向对象与可视化程序设计VisualC编程主讲教师_第4页
面向对象与可视化程序设计VisualC编程主讲教师_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象与可视化程序设计VisualC编程主讲教师3/22/202223/22/202233/22/20224,F菜单是用户与应用程序交互的最常用手段。菜单是用户与应用程序交互的最常用手段。F菜单存放在资源脚本中,在程序运行时调用。菜单存放在资源脚本中,在程序运行时调用。F一个菜单项必须包含两部分一个菜单项必须包含两部分: :菜单项名称菜单项名称字符串构成字符串构成, ,例如:例如:filefile菜单项标识符菜单项标识符IDID整数值,可用整数常量表示整数值,可用整数常量表示F菜单标识符菜单标识符IDID在资源的头文件中定义,前缀在资源的头文件中定义,前缀IDMIDM指明是菜单项,如:指明是

2、菜单项,如:#define IDM_MENU1 129#define IDM_MENU1 129F在菜单资源,必须链接到类中,通过提供类方在菜单资源,必须链接到类中,通过提供类方法来处理每个菜单项。法来处理每个菜单项。3/22/20225IDR_MENU1 MENU DISCARDABLE IDR_MENU1 MENU DISCARDABLE BEGINBEGIN POPUP &File POPUP &File /定义定义FileFile菜单菜单 BEGINBEGIN /菜单菜单FileFile定义开始定义开始 MENUITEM &Voice, IDC_VOICE_ME

3、NU MENUITEM &Voice, IDC_VOICE_MENU /菜单项菜单项 MENUITEM &Show, IDC_SHOW_MENU MENUITEM &Show, IDC_SHOW_MENU /菜单项菜单项 MENUITEM SEPARATORMENUITEM SEPARATOR /分隔线分隔线 MENUITEM &Exit, IDC_EXIT_MENU MENUITEM &Exit, IDC_EXIT_MENU /菜单项菜单项 ENDEND /菜单菜单FileFile定义结束定义结束 POPUP &HelpPOPUP &H

4、elp /定义定义HelpHelp菜单菜单 BEGINBEGIN /菜单菜单HelpHelp定义开始定义开始 MENUITEM &About, IDC_ABOUT_MENU MENUITEM &About, IDC_ABOUT_MENU /菜单项菜单项 ENDEND /菜单菜单HelpHelp定义结束定义结束ENDENDF菜单模板用一种很简单的结构在资源脚本文菜单模板用一种很简单的结构在资源脚本文件中定义,一个菜单资源模板实例如下:件中定义,一个菜单资源模板实例如下:3/22/20226 3. CMenu类类FCMenuCMenu类是类是CobjectCobject类直接派生的

5、。类直接派生的。FCMenuCMenu类提供了许多处理菜单和菜单项的方法:类提供了许多处理菜单和菜单项的方法:构造方法;构造方法;菜单操作方法;菜单操作方法;菜单项操作方法;菜单项操作方法;虚拟方法。虚拟方法。3/22/20227 3. CMenu类(续)类(续)F构造方法用于建立构造方法用于建立WindowsWindows菜单,并在运行时将菜单,并在运行时将它们附加到它们附加到CMenuCMenu对象上,对象上,3/22/202283/22/202293/22/2022103/22/202211F主窗口标题为主窗口标题为Application of MenuApplication of Me

6、nu。F有三个按钮:有三个按钮:VoiceVoice、ShowShow和和ExitExit。F有两个菜单:有两个菜单:FileFile和和HelpHelp。FFileFile下拉出三个菜单项:下拉出三个菜单项:VoiceVoice、ShowShow和和Exit Exit 。 F单击单击VioceVioce选项,可听到选项,可听到PCPC机喇叭发出蜂鸣声机喇叭发出蜂鸣声F单击单击ShowShow,则弹出对话框,显示信息,则弹出对话框,显示信息“This is a This is a Sle of adding menu”Sle of adding menu”。F单击单击ExitExit,则退出。

7、,则退出。3/22/202212主窗口布局如下图;主窗口布局如下图;3/22/2022133/22/2022143/22/202215对对 象象 IDIDCaptionCaption命令按钮命令按钮IDC_VOICE_BUTTONIDC_VOICE_BUTTON &Voice&Voice命令按钮命令按钮IDC_SHOW_BUTTONIDC_SHOW_BUTTON&Show&Show命令按钮命令按钮IDC_EXTT_BUTTONIDC_EXTT_BUTTON&Exit&Exit3/22/202216(a)Insert(a)InsertResourc

8、eResource对话框对话框(b) (b) 选择选择MenuMenu项项(c)(c)单击按钮单击按钮NewNew,加一菜,加一菜单资源单资源F对话框中菜单的设计对话框中菜单的设计插入资源插入资源Insert-ResourceInsert-Resource,显示,显示nsertResourcensertResource对对话框话框在资源列表选择在资源列表选择MenuMenu项项单击按钮单击按钮New New ,在资源文件,在资源文件Menu.rcMenu.rc中加一菜单资源。中加一菜单资源。3/22/2022174. 给菜单连接一个类给菜单连接一个类F作为一个对象,菜单必须与一个类连接。作为一

9、个对象,菜单必须与一个类连接。F这个菜单是对话框中的一个资源,将它与对话框这个菜单是对话框中的一个资源,将它与对话框的派生类的派生类CMenuDlgCMenuDlg相连接。相连接。F菜单菜单IDR_MENU1 IDR_MENU1 连接了一个类,可调用该类的成连接了一个类,可调用该类的成员函数和成员变量。员函数和成员变量。3/22/202218F为了在主窗口中显示菜单,菜单还应连接主窗口。为了在主窗口中显示菜单,菜单还应连接主窗口。F菜单与主窗口对话框菜单与主窗口对话框( (即即IDD_MENU_DIALOG)IDD_MENU_DIALOG)的连接:的连接: 在在MenuMenu工作区的工作区的

10、Resource ViewResource View选项卡中,双击选项卡中,双击DialogDialog文件夹中的文件夹中的IDD_MENU_DIALOGIDD_MENU_DIALOG,弹出,弹出IDD_MENU_DIALOGIDD_MENU_DIALOG对话框。对话框。 在对话框内,单击鼠标右键,在快捷菜单中选择在对话框内,单击鼠标右键,在快捷菜单中选择PropertiesProperties命令,在对话命令,在对话框中的框中的MenuMenu组合框中选择组合框中选择IDD_MENU1IDD_MENU13/22/202219(1) 给菜单给菜单File的的Exit选项编写代码选项编写代码vo

11、id CMenuDlgvoid CMenuDlg:OnExitMenuOnExitMenu讲义讲义 OnOKOnOK讲义讲义; (2) 给给File菜单的菜单的Voice项连接代码项连接代码void CMenuDlgvoid CMenuDlg:OnVioceMenuOnVioceMenu讲义讲义 MessageBeep MessageBeep(WORDWORD)-1-1);); DWORD iTime=GetCurrentTimeDWORD iTime=GetCurrentTime讲义讲义 whilewhile(GetCurrentTimeGetCurrentTime讲义讲义 iTime+50

12、0 AppWizard Step 1 - Dialog based(1) MFC - AppWizard Step 1 - Dialog based(2) (2) 给对话框添加菜单。给对话框添加菜单。Insert - Resource, Insert - Resource, 在在Resource type -Menu - Resource type -Menu - NewNew按钮为应用程序添加菜单资源按钮为应用程序添加菜单资源 - - 设置菜单项属性,各菜单项的属性如表设置菜单项属性,各菜单项的属性如表所示所示对象对象IDIDCaptionCaption菜单菜单时间时间(&T)(&a

13、mp;T)菜单项菜单项 ID_YEAR_MENUID_YEAR_MENU年、月、日年、月、日(&D)(&D)菜单项菜单项ID_HOUR_MENUID_HOUR_MENU 小时、分钟、秒小时、分钟、秒(&H)(&H)菜单项菜单项 ID_EXIT_MENUID_EXIT_MENU退出退出(&X)(&X)3/22/202224- -在菜单上单击鼠标右键在菜单上单击鼠标右键- -在弹出菜单中选在弹出菜单中选ClassWizardClassWizard- -出现了出现了Add ClassAdd Class对话框对话框- -选择选择Select an exi

14、sting calssSelect an existing calss选项,单击选项,单击OKOK按钮,按钮,- -在弹出的对话框中选择在弹出的对话框中选择CMy12_5DlgCMy12_5Dlg类,这样就把菜单加入到对话框类类,这样就把菜单加入到对话框类中。中。- -在在Resource ViewResource View选项卡中打开选项卡中打开DialogDialog资源组,双击资源组,双击IDD_MY12_5_DIALOGIDD_MY12_5_DIALOG,如下图。,如下图。鼠标右键鼠标右键- -PropertiesProperties菜单项,菜单项,在在MenuMenu列表框中选择编辑

15、过的列表框中选择编辑过的菜单的菜单的IDID:ID_MENU1ID_MENU1。这样。这样就把菜单加入到对话框中。就把菜单加入到对话框中。3/22/202225IDID变量变量ID_YEAR_EDITID_YEAR_EDITm_Year_Editm_Year_EditID_MONTH_EDITID_MONTH_EDITm_Month_Editm_Month_EditID_DAY_EDITID_DAY_EDITm_Day_Editm_Day_EditID_HOUR_EDITID_HOUR_EDITm_Hour_Editm_Hour_EditID_MINUTE_EDITID_MINUTE_EDIT

16、m_Minute_Editm_Minute_EditID_SECOND_EDITID_SECOND_EDITm_Second_Editm_Second_EditID_EXIT_BUTTONID_EXIT_BUTTONE&xitE&xit3/22/202226菜单项的消息处理函数菜单项的消息处理函数菜单项菜单项IDID消息消息消息处理函数消息处理函数ID_YEAR_MENUID_YEAR_MENUCOMMANDCOMMANDOnYearMenuOnYearMenu三三ID_HOUR_MENUID_HOUR_MENUCOMMANDCOMMANDOnHourMenuOnHourMen

17、u三三ID_EXIT_MENUID_EXIT_MENUCOMMANDCOMMANDOnExitMenuOnExitMenu三三void CMy12_5Dlg:OnYearMenuvoid CMy12_5Dlg:OnYearMenu三三 /给给“年、月、日年、月、日”菜单项消息处理函数菜单项消息处理函数struct tm struct tm * *newtime;newtime;/定义定义tmtm结构结构, ,存贮时间存贮时间 time_t long_time;time_t long_time;/定义保存时间的变量定义保存时间的变量 char buffer10;char buffer10; ti

18、me( &long_time ); time( &long_time );/获取时间获取时间 newtime = localtime( &long_time ); /newtime = localtime( &long_time ); /时间转换时间转换 /将年月日输出到编辑框中将年月日输出到编辑框中. . _itoa(newtime-tm_year+1900,buffer,10);/tm_year _itoa(newtime-tm_year+1900,buffer,10);/tm_year是当前年份和是当前年份和19001900之差之差 m_Year_Edit

19、.SetWindowText(LPCTSTR)(buffer);m_Year_Edit.SetWindowText(LPCTSTR)(buffer); _itoa(newtime-tm_mon+1,buffer,10); _itoa(newtime-tm_mon+1,buffer,10);/tm_mon/tm_mon是当前月份是当前月份 m_Month_Edit.SetWindowText(LPCTSTR)(buffer);m_Month_Edit.SetWindowText(LPCTSTR)(buffer); _itoa(newtime-tm_mday,buffer,10); _itoa(n

20、ewtime-tm_mday,buffer,10);/tm_mday/tm_mday是当前日是当前日 m_Day_Edit.SetWindowText(LPCTSTR)(buffer);m_Day_Edit.SetWindowText(LPCTSTR)(buffer); 3/22/202227void CMy12_5Dlg:OnHourMenuvoid CMy12_5Dlg:OnHourMenu三三 /给菜单项给菜单项“小时、分、秒小时、分、秒”加入代码加入代码 struct tm struct tm * *newtime;newtime;/定义定义tmtm结构结构, ,保存时间保存时间 time_t long_time;time_t long_time;/定义保存时间的长整型变量定义保存时间的长整型变量 char buffer10;char buffer10; time( &long_time ); time( &long_time ); /获取时间获取时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论