




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-1-121 2022-1-1222022-1-1232022-1-1242022-1-125,F菜单是用户与应用程序交互的最常用手段。菜单是用户与应用程序交互的最常用手段。F菜单存放在资源脚本中,在程序运行时调用。菜单存放在资源脚本中,在程序运行时调用。F一个菜单项必须包含两部分一个菜单项必须包含两部分: :菜单项名称菜单项名称字符串构成字符串构成, ,例如:例如:filefile菜单项标识符菜单项标识符IDID整数值,可用整数常量表示整数值,可用整数常量表示F菜单标识符菜单标识符IDID在资源的头文件在资源的头文件Resource.hResource.h中定中定义,前缀义,前缀ID
2、MIDM指明是菜单项,如:指明是菜单项,如:# #define IDM_MENU1 129define IDM_MENU1 129F在菜单资源,必须链接到类中,通过提供类方在菜单资源,必须链接到类中,通过提供类方法来处理每个菜单项。法来处理每个菜单项。2022-1-126IDR_MENU1 MENU DISCARDABLE IDR_MENU1 MENU DISCARDABLE BEGINBEGIN POPUP &FilePOPUP &File /定义定义FileFile菜单菜单 BEGINBEGIN /菜单菜单FileFile定义开始定义开始 MENUITEM &Voi
3、ce, IDC_VOICE_MENU 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 &
4、HelpPOPUP &Help /定义定义HelpHelp菜单菜单 BEGINBEGIN /菜单菜单HelpHelp定义开始定义开始 MENUITEM &About, IDC_ABOUT_MENU MENUITEM &About, IDC_ABOUT_MENU /菜单项菜单项 ENDEND /菜单菜单HelpHelp定义结束定义结束ENDENDF菜单模板用一种很简单的结构在资源脚本文菜单模板用一种很简单的结构在资源脚本文件中定义,一个菜单资源模板实例如下:件中定义,一个菜单资源模板实例如下:2022-1-127 3. CMenu类类FCMenuCMenu类是类是Cobj
5、ectCobject类直接派生的。类直接派生的。FCMenuCMenu类提供了许多处理菜单和菜单项的方法:类提供了许多处理菜单和菜单项的方法:构造方法;构造方法;菜单操作方法;菜单操作方法;菜单项操作方法;菜单项操作方法;虚拟方法。虚拟方法。2022-1-128 3. CMenu类(续)类(续)F构造方法用于建立构造方法用于建立WindowsWindows菜单,并在运行时将菜单,并在运行时将它们附加到它们附加到CMenuCMenu对象上,对象上,表表1 12 2- -1 1 C CM Me en nu u的的构构造造方方法法方方法法说说明明A At tt ta ac ch h( () )把把一
6、一个个标标准准的的W Wi in nd do ow ws s菜菜单单句句柄柄附附加加到到C CM Me en nu u对对象象上上C Cr re ea at te eM Me en nu u( () )创创建建一一个个空空菜菜单单并并把把它它附附加加到到C CM Me en nu u对对象象上上C Cr re ea at te eP Po op pu up pM Me en nu u( () )创创建建一一个个弹弹出出式式菜菜单单并并把把它它附附加加到到C CM Me en nu u对对象象上上D De el le et te eT Te em mp pM Ma ap p( () )删删除除由
7、由F Fr ro om mH Ha an nd dl le e( () )构构造造函函数数创创建建的的任任何何临临时时C CM Me en nu u对对象象D De es st tr ro oy yM Me en nu u( () )去去掉掉附附加加到到C CM Me en nu u对对象象上上的的菜菜单单并并释释放放该该菜菜单单占占有有的的任任何何内内存存D De ea at tc ch h( () )从从C CM Me en nu u对对象象上上拆拆开开W Wi in nd do ow ws s菜菜单单句句柄柄并并返返回回该该句句柄柄F Fr ro om mH Ha an nd dl le
8、 e( () )当当给给定定W Wi in nd do ow ws s菜菜单单句句柄柄时时,返返回回C CM Me en nu u对对象象指指针针G Ge et tS Sa af fe eH Hm me en nu u( () )返返回回由由C CM Me en nu u对对象象封封装装的的菜菜单单句句柄柄成成员员( (m m_ _h hM Me en nu u) )L Lo oa ad dM Me en nu u( () )从从可可执执行行文文件件装装入入菜菜单单资资源源并并把把它它附附到到C Cm me en nu u对对象象上上L Lo oa ad dM Me en nu uI In n
9、d di ir re ec ct t( () )从从内内存存中中的的菜菜单单模模板板中中装装入入菜菜单单并并把把它它附附到到C CM Me en nu u对对象象上上2022-1-1292022-1-12102022-1-12112022-1-12121.应用程序的实现功能应用程序的实现功能F主窗口标题为主窗口标题为Application of MenuApplication of Menu。F有三个按钮:有三个按钮:VoiceVoice、ShowShow和和ExitExit。F有两个菜单:有两个菜单:FileFile和和HelpHelp。FFileFile下拉出三个菜单项:下拉出三个菜单项:
10、VoiceVoice、ShowShow和和Exit Exit 。 F单击单击VioceVioce选项,可听到选项,可听到PCPC机喇叭发出蜂鸣声机喇叭发出蜂鸣声F单击单击ShowShow,则弹出对话框,显示信息,则弹出对话框,显示信息“This is This is a Sample of adding menu”a Sample of adding menu”。F单击单击ExitExit,则退出。,则退出。2022-1-1213主窗口布局如下图;主窗口布局如下图;2022-1-12142022-1-12152022-1-1216对对 象象 IDIDCaptionCaption命令按钮命令按钮
11、IDC_VOICE_BUTTONIDC_VOICE_BUTTON&Voice&Voice命令按钮命令按钮IDC_SHOW_BUTTONIDC_SHOW_BUTTON&Show&Show命令按钮命令按钮IDC_EXTT_BUTTONIDC_EXTT_BUTTON&Exit&Exit2022-1-1217(a)(a)InsertInsertResourceResource对话框对话框(b) (b) 选择选择MenuMenu项项(c)(c)单击按钮单击按钮NewNew,加一菜,加一菜单资源单资源F对话框中菜单的设计对话框中菜单的设计插入资源插入资源In
12、sertInsert-ResourceResource,显示,显示nsertResourcensertResource对对话框话框在资源列表选择在资源列表选择MenuMenu项项单击按钮单击按钮NewNew ,在资源文件,在资源文件Menu.rcMenu.rc中加一菜单资源。中加一菜单资源。2022-1-12184. 给菜单连接一个类给菜单连接一个类F作为一个对象,菜单必须与一个类连接。作为一个对象,菜单必须与一个类连接。F这个菜单是对话框中的一个资源,将它与对话框这个菜单是对话框中的一个资源,将它与对话框的派生类的派生类CMenuDlgCMenuDlg相连接。相连接。F菜单菜单IDR_MEN
13、U1IDR_MENU1 连接了一个类,可调用该类的成连接了一个类,可调用该类的成员函数和成员变量。员函数和成员变量。2022-1-12195.连接菜单和应用程序的主窗口连接菜单和应用程序的主窗口F为了在主窗口中显示菜单,菜单还应连接主窗口。为了在主窗口中显示菜单,菜单还应连接主窗口。F菜单与主窗口对话框菜单与主窗口对话框( (即即IDD_MENU_DIALOGIDD_MENU_DIALOG) )的连接:的连接:F在在MenuMenu工作区的工作区的Resource ViewResource View选项卡中,双击选项卡中,双击DialogDialog文件夹中的文件夹中的IDD_MENU_DIA
14、LOGIDD_MENU_DIALOG,弹出,弹出IDD_MENU_DIALOGIDD_MENU_DIALOG对话框。对话框。F在对话框内,单击鼠标右键,在快捷菜单中选择在对话框内,单击鼠标右键,在快捷菜单中选择PropertiesProperties命令,命令,在对话框中的在对话框中的MenuMenu组合框中选择组合框中选择IDD_MENU1IDD_MENU12022-1-1220(1) 给菜单给菜单File的的Exit选项编写代码选项编写代码void CMenuDlgvoid CMenuDlg:OnExitMenuOnExitMenu()() OnOKOnOK();(); (2) 给给Fil
15、e菜单的菜单的Voice项连接代码项连接代码void CMenuDlgvoid CMenuDlg:OnVioceMenuOnVioceMenu()() MessageBeep MessageBeep(WORDWORD)-1-1);); DWORD iTime=GetCurrentTimeDWORD iTime=GetCurrentTime()() whilewhile(GetCurrentTimeGetCurrentTime()() iTime+500 AppWizard Step 1 - Dialog basedMFC - AppWizard Step 1 - Dialog based(2)
16、 (2) 给对话框添加菜单。给对话框添加菜单。Insert - Resource, Insert - Resource, 在在Resource type -Resource type -Menu - NewMenu - New按钮为应用程序添加菜单资源按钮为应用程序添加菜单资源 - - 设置菜单项属性,设置菜单项属性,各菜单项的属性如表所示各菜单项的属性如表所示对象对象IDIDCaptionCaption菜单菜单时间时间(&(&T)T)菜单项菜单项ID_YEAR_MENUID_YEAR_MENU年、月、日年、月、日(&(&D)D)菜单项菜单项ID_HOUR_ME
17、NUID_HOUR_MENU小时、分钟、秒小时、分钟、秒(&(&H)H)菜单项菜单项ID_EXIT_MENUID_EXIT_MENU退出退出(&(&X)X)2022-1-1225- -在菜单上单击鼠标右键在菜单上单击鼠标右键- -在弹出菜单中选在弹出菜单中选ClassWizardClassWizard- -出现了出现了Add ClassAdd Class对话框对话框- -选择选择Select an existing calssSelect an existing calss选项,单击选项,单击OKOK按钮,按钮,- -在弹出的对话框中选择在弹出的对话框中选择CM
18、y12_5DlgCMy12_5Dlg类,这样就把菜单加入到对话类,这样就把菜单加入到对话框类中。框类中。- -在在Resource ViewResource View选项卡中打开选项卡中打开DialogDialog资源组,双击资源组,双击IDD_MY12_5_DIALOGIDD_MY12_5_DIALOG,如下图。,如下图。鼠标右键鼠标右键- -PropertiesProperties菜单项,菜单项,在在MenuMenu列表框中选择编辑过的列表框中选择编辑过的菜单的菜单的IDID:ID_MENU1ID_MENU1。这样。这样就把菜单加入到对话框中。就把菜单加入到对话框中。2022-1-1226
19、IDID变量变量ID_YEAR_EDITID_YEAR_EDITm_Year_Editm_Year_EditID_MONTH_EDITID_MONTH_EDIT m_Month_Editm_Month_EditID_DAY_EDITID_DAY_EDITm_Day_Editm_Day_EditID_HOUR_EDITID_HOUR_EDITm_Hour_Editm_Hour_EditID_MINUTE_EDITID_MINUTE_EDITm_Minute_Editm_Minute_EditID_SECOND_EDITID_SECOND_EDITm_Second_Editm_Second_Edi
20、tID_EXIT_BUTTONID_EXIT_BUTTONE&xitE&xit2022-1-1227菜单项的消息处理函数菜单项的消息处理函数菜单项菜单项IDID消息消息消息处理函数消息处理函数ID_YEAR_MENUID_YEAR_MENUCOMMANDCOMMANDOnYearMenuOnYearMenu()()ID_HOUR_MENUID_HOUR_MENUCOMMANDCOMMANDOnHourMenuOnHourMenu()()ID_EXIT_MENUID_EXIT_MENUCOMMANDCOMMANDOnExitMenuOnExitMenu()()void CMy12
21、_5Dlg:OnYearMenuvoid CMy12_5Dlg:OnYearMenu() /() /给给“年、月、日年、月、日”菜单项消息处理函数菜单项消息处理函数 struct tm struct tm * *newtimenewtime; ;/定义定义tmtm结构结构, ,存贮时间存贮时间 time_t long_time;time_t long_time;/定义保存时间的变量定义保存时间的变量 char buffer10;char buffer10; time( &long_time ); time( &long_time );/获取时间获取时间 newtime = lo
22、caltimenewtime = localtime( &long_time ); /( &long_time ); /时间转换时间转换 /将年月日输出到编辑框中将年月日输出到编辑框中. . _ _itoa(newtimeitoa(newtime-tm_year+1900,buffer,10);/tm_year-tm_year+1900,buffer,10);/tm_year是当前年份和是当前年份和19001900之差之差 m_Year_Edit.SetWindowTextm_Year_Edit.SetWindowText(LPCTSTR)(buffer);(LPCTSTR)(
23、buffer); _itoa(newtime-tm_mon+1,buffer,10); _itoa(newtime-tm_mon+1,buffer,10);/tm_mon/tm_mon是当前月份是当前月份 m_Month_Edit.SetWindowTextm_Month_Edit.SetWindowText(LPCTSTR)(buffer);(LPCTSTR)(buffer); _itoa(newtime-tm_mday,buffer,10); _itoa(newtime-tm_mday,buffer,10);/tm_mday/tm_mday是当前日是当前日 m_Day_Edit.SetWindowTextm_Day_Edit.SetWindowText(LPCTSTR)(buffer);(LPCTSTR)(buffer); 2022-1-1228void CMy12_5Dlg:OnHourMenuvoid CMy12_5Dlg:OnHourMenu() /() /给菜单项给菜单项“小时、分、秒小时、分、秒”加入代码加入代码 struct tm struct tm * *newtimenewtime; ;/定义定义tmtm结构结构, ,保存时间保存时间 time_t long_time;time_t long_time;/定义保存时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初一上学期长郡数学试卷
- 高级瓦楞纸板及纸箱生产项目环评报告表
- 通信电缆施工方案
- 2024-2025学年下学期高一语文第二单元B卷
- 柴油装卸系统施工方案
- 【专精特新】稀土永磁材料企业专精特新“小巨人”成长之路(智研咨询)
- 信息技术下的立体几何教学初探
- 高中历史课堂教学情境创设的策略研究
- 南京科远KD200变频器使用手册
- 中外教育史知到课后答案智慧树章节测试答案2025年春牡丹江师范学院
- 六年级1班语文老师家长会课件
- 小学英语-PEP六下Unit1 Part B Read and write教学设计学情分析教材分析课后反思
- 五代十国的历史故事
- 中交第三航务工程局有限公司安全管理制度汇编(2020版)
- 港澳台专题教育课件
- 高中英语外研版高中必修2Module3Music-Music教案
- 工业机器人技术专业建设规划
- 车间主要生产设备一览表
- 川74取心筒说明书
- 2023年军考语文真题及参考答案
- 五年级下册数学苏教版课件 因数和倍数的认识
评论
0/150
提交评论