




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、面向?qū)ο笈c可視化程序設(shè)計(jì) -Visual C+ 編程1第十二章菜單類及其應(yīng)用2022/7/162內(nèi)容提要菜單類簡介菜單類控件的應(yīng)用2022/7/16312.1.菜單類簡介2022/7/1641.菜單菜單是用戶與應(yīng)用程序交互的最常用手段。菜單存放在資源腳本中,在程序運(yùn)行時調(diào)用。一個菜單項(xiàng)必須包含兩部分:菜單項(xiàng)名稱字符串構(gòu)成,例如:file菜單項(xiàng)標(biāo)識符ID整數(shù)值,可用整數(shù)常量表示菜單標(biāo)識符ID在資源的頭文件中定義,前綴IDM指明是菜單項(xiàng),如:#define IDM_MENU1 129在菜單資源,必須鏈接到類中,通過提供類方法來處理每個菜單項(xiàng)。2022/7/165,2. 菜單結(jié)構(gòu)菜單模板用一種很簡單
2、的結(jié)構(gòu)在資源腳本文件中定義,一個菜單資源模板實(shí)例如下:2022/7/166IDR_MENU1 MENU DISCARDABLE BEGIN POPUP &File /定義File菜單 BEGIN /菜單File定義開始 MENUITEM &Voice, IDC_VOICE_MENU /菜單項(xiàng) MENUITEM &Show, IDC_SHOW_MENU /菜單項(xiàng) MENUITEM SEPARATOR /分隔線 MENUITEM &Exit, IDC_EXIT_MENU /菜單項(xiàng) END /菜單File定義結(jié)束 POPUP &Help /定義Help菜單 BEGIN /菜單Help定義開始 MEN
3、UITEM &About, IDC_ABOUT_MENU /菜單項(xiàng) END /菜單Help定義結(jié)束END3. CMenu類CMenu類是Cobject類直接派生的。CMenu類提供了許多處理菜單和菜單項(xiàng)的方法:構(gòu)造方法;菜單操作方法;菜單項(xiàng)操作方法;虛擬方法。2022/7/167 3. CMenu類(續(xù))構(gòu)造方法用于建立Windows菜單,并在運(yùn)行時將它們附加到CMenu對象上,2022/7/168 3. CMenu類(續(xù))菜單操作方法用于處理菜單的頂層操作,只有兩個方法:DeleteMenu()刪除指定的菜單項(xiàng)(包括附屬的級連菜單項(xiàng));TrackPopupMenu()在一個指定的位置顯示一個
4、快捷菜單。2022/7/1693. CMenu類(續(xù))菜單項(xiàng)操作方法有多種用于處理指定菜單項(xiàng)操作2022/7/161012.2.菜單類編程實(shí)例2022/7/16111.應(yīng)用程序的實(shí)現(xiàn)功能主窗口標(biāo)題為Application of Menu。有三個按鈕:Voice、Show和Exit。有兩個菜單:File和Help。File下拉出三個菜單項(xiàng):Voice、Show和Exit 。 單擊Vioce選項(xiàng),可聽到PC機(jī)喇叭發(fā)出蜂鳴聲單擊Show,則彈出對話框,顯示信息“This is a Sample of adding menu”。單擊Exit,則退出。2022/7/16122022/7/1613主窗口布
5、局如下圖;2.編程過程建立工程文件:用MFC AppWizard(exe)工程項(xiàng)目名稱:Menu建立主窗口標(biāo)題為Application of Menu的應(yīng)用程序??梢暬幊?設(shè)計(jì)界面連接變量修改特性添加代碼2022/7/16143.界面設(shè)計(jì)在Menu的工作區(qū)中選擇ResourceView在名為IDD_MENU_DIALOG的對話框作為應(yīng)用程序的主窗口中進(jìn)行界面設(shè)計(jì)。對話框中按鈕的設(shè)計(jì)借助于工具窗,在主窗口中安排三個命令按鈕。在命令按鈕上單擊右鍵,選Propertires在Puch Button Propertires的General上,輸入相應(yīng)的ID和Caption重復(fù)三次,完成了三個按鈕的設(shè)
6、計(jì)。2022/7/16153.界面設(shè)計(jì)(續(xù))2022/7/1616 設(shè)計(jì)的三個按鈕屬性對 象 IDCaption命令按鈕IDC_VOICE_BUTTON&Voice命令按鈕IDC_SHOW_BUTTON&Show命令按鈕IDC_EXTT_BUTTON&Exit對話框中菜單的設(shè)計(jì)插入資源Insert-Resource,顯示nsertResource對話框在資源列表選擇Menu項(xiàng)單擊按鈕New ,在資源文件中加一菜單資源。2022/7/1617(a)InsertResource對話框(b) 選擇Menu項(xiàng)(c)單擊按鈕New,加一菜單資源4. 給菜單連接一個類作為一個對象,菜單必須與一個類連接。這
7、個菜單是對話框中的一個資源,將它與對話框的派生類CMenuDlg相連接。菜單IDR_MENU1 連接了一個類,可調(diào)用該類的成員函數(shù)和成員變量。2022/7/16185.連接菜單和應(yīng)用程序的主窗口為了在主窗口中顯示菜單,菜單還應(yīng)連接主窗口。菜單與主窗口對話框(即IDD_MENU_DIALOG)的連接:在Menu工作區(qū)的Resource View選項(xiàng)卡中,雙擊Dialog文件夾中的IDD_MENU_DIALOG,彈出IDD_MENU_DIALOG對話框。在對話框內(nèi),單擊鼠標(biāo)右鍵,在快捷菜單中選擇Properties命令,在對話框中的Menu組合框中選擇IDD_MENU12022/7/16196.應(yīng)
8、用程序的代碼編程2022/7/1620(1) 給菜單File的Exit選項(xiàng)編寫代碼void CMenuDlg:OnExitMenu()OnOK();(2) 給File菜單的Voice項(xiàng)連接代碼void CMenuDlg:OnVioceMenu() MessageBeep(WORD)-1); DWORD iTime=GetCurrentTime() while(GetCurrentTime() AppWizard Step 1 - Dialog based(2) 給對話框添加菜單。Insert - Resource, 在Resource type -Menu - New按鈕為應(yīng)用程序添加菜單資源
9、 - 設(shè)置菜單項(xiàng)屬性,各菜單項(xiàng)的屬性如表所示對象IDCaption菜單時間(&T)菜單項(xiàng)ID_YEAR_MENU年、月、日(&D)菜單項(xiàng)ID_HOUR_MENU小時、分鐘、秒(&H)菜單項(xiàng)ID_EXIT_MENU退出(&X)2022/7/1625-在菜單上單擊鼠標(biāo)右鍵-在彈出菜單中選ClassWizard-出現(xiàn)了Add Class對話框-選擇Select an existing calss選項(xiàng),單擊OK按鈕,-在彈出的對話框中選擇CMy12_5Dlg類,這樣就把菜單加入到對話框類中。-在Resource View選項(xiàng)卡中打開Dialog資源組,雙擊IDD_MY12_5_DIALOG,如下圖。鼠
10、標(biāo)右鍵-Properties菜單項(xiàng),在Menu列表框中選擇編輯過的菜單的ID:ID_MENU1。這樣就把菜單加入到對話框中。2022/7/1626ID變量ID_YEAR_EDITm_Year_EditID_MONTH_EDITm_Month_EditID_DAY_EDITm_Day_EditID_HOUR_EDITm_Hour_EditID_MINUTE_EDITm_Minute_EditID_SECOND_EDITm_Second_EditID_EXIT_BUTTONE&xit2022/7/1627菜單項(xiàng)的消息處理函數(shù)菜單項(xiàng)ID消息消息處理函數(shù)ID_YEAR_MENUCOMMANDOnYea
11、rMenu()ID_HOUR_MENUCOMMANDOnHourMenu()ID_EXIT_MENUCOMMANDOnExitMenu()void CMy12_5Dlg:OnYearMenu() /給“年、月、日”菜單項(xiàng)消息處理函數(shù)struct tm *newtime;/定義tm結(jié)構(gòu),存貯時間 time_t long_time;/定義保存時間的變量 char buffer10; time( &long_time );/獲取時間 newtime = localtime( &long_time ); /時間轉(zhuǎn)換 /將年月日輸出到編輯框中. _itoa(newtime-tm_year+1900,bu
12、ffer,10);/tm_year是當(dāng)前年份和1900之差 m_Year_Edit.SetWindowText(LPCTSTR)(buffer); _itoa(newtime-tm_mon+1,buffer,10);/tm_mon是當(dāng)前月份 m_Month_Edit.SetWindowText(LPCTSTR)(buffer); _itoa(newtime-tm_mday,buffer,10);/tm_mday是當(dāng)前日 m_Day_Edit.SetWindowText(LPCTSTR)(buffer);2022/7/1628void CMy12_5Dlg:OnHourMenu() /給菜單項(xiàng)“小時、分、秒”加入代碼 struct tm *newtime;/定義tm結(jié)構(gòu),保存時間 time_t long_time;/定義保存時間的長整型變量 char buffer10; time( &long_time ); /獲取時間 newtime = localtime( &long_time ); /時間轉(zhuǎn)換/將小時,分鐘,秒輸出到編輯框中. _itoa(newtime-tm_hour,buffer,10);/tm_hour是當(dāng)前小時 m_Hour_Edit.SetWindowText(LPCTSTR)(buffer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝修人工費(fèi)報(bào)價及結(jié)算合同
- 深基坑工程專項(xiàng)施工方案
- 購買設(shè)備可行性研究報(bào)告
- 建筑垃圾再生利用項(xiàng)目可行性研究報(bào)告
- 健身行業(yè)運(yùn)營管理策略手冊
- 2025年度北京市智能家居與暖通裝潢合同
- 商業(yè)秘密保護(hù)措施與合規(guī)性分析
- 設(shè)備 可行性分析報(bào)告
- 風(fēng)電設(shè)備投資分析
- 以信息化推動現(xiàn)代農(nóng)業(yè)現(xiàn)代化升級的實(shí)施計(jì)劃書
- 臨床基于高級健康評估的高血壓Ⅲ級合并腦梗死患者康復(fù)個案護(hù)理
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 2023年初中升學(xué)考試語文中考漫畫練習(xí)題123
- 蘇少版《書法練習(xí)指導(dǎo)》培訓(xùn)《多寶塔》技法、與《勤禮碑》比較課件
- 2022屆“一本、二本臨界生”動員大會(2023.5)
- 中小學(xué)生綜合素質(zhì)評價表
- 《語文課程標(biāo)準(zhǔn)》義務(wù)教育2022年修訂版【原版】
- 食堂工作人員安全培訓(xùn)內(nèi)容資料
- 體檢報(bào)告單入職體檢模板
- 航運(yùn)公司安全生產(chǎn)應(yīng)急預(yù)案
- 華師大科學(xué)八年級下 實(shí)驗(yàn)探究專題(聲 光 電、磁 共54題 word解析版)
評論
0/150
提交評論