




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、面向對象與可視化程序設計 -Visual C+ 編程1第十二章菜單類及其應用2022/7/162內容提要菜單類簡介菜單類控件的應用2022/7/16312.1.菜單類簡介2022/7/1641.菜單菜單是用戶與應用程序交互的最常用手段。菜單存放在資源腳本中,在程序運行時調用。一個菜單項必須包含兩部分:菜單項名稱字符串構成,例如:file菜單項標識符ID整數值,可用整數常量表示菜單標識符ID在資源的頭文件中定義,前綴IDM指明是菜單項,如:#define IDM_MENU1 129在菜單資源,必須鏈接到類中,通過提供類方法來處理每個菜單項。2022/7/165,2. 菜單結構菜單模板用一種很簡單
2、的結構在資源腳本文件中定義,一個菜單資源模板實例如下:2022/7/166IDR_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定義開始 MEN
3、UITEM &About, IDC_ABOUT_MENU /菜單項 END /菜單Help定義結束END3. CMenu類CMenu類是Cobject類直接派生的。CMenu類提供了許多處理菜單和菜單項的方法:構造方法;菜單操作方法;菜單項操作方法;虛擬方法。2022/7/167 3. CMenu類(續)構造方法用于建立Windows菜單,并在運行時將它們附加到CMenu對象上,2022/7/168 3. CMenu類(續)菜單操作方法用于處理菜單的頂層操作,只有兩個方法:DeleteMenu()刪除指定的菜單項(包括附屬的級連菜單項);TrackPopupMenu()在一個指定的位置顯示一個
4、快捷菜單。2022/7/1693. CMenu類(續)菜單項操作方法有多種用于處理指定菜單項操作2022/7/161012.2.菜單類編程實例2022/7/16111.應用程序的實現功能主窗口標題為Application of Menu。有三個按鈕:Voice、Show和Exit。有兩個菜單:File和Help。File下拉出三個菜單項:Voice、Show和Exit 。 單擊Vioce選項,可聽到PC機喇叭發出蜂鳴聲單擊Show,則彈出對話框,顯示信息“This is a Sample of adding menu”。單擊Exit,則退出。2022/7/16122022/7/1613主窗口布
5、局如下圖;2.編程過程建立工程文件:用MFC AppWizard(exe)工程項目名稱:Menu建立主窗口標題為Application of Menu的應用程序。可視化編程:設計界面連接變量修改特性添加代碼2022/7/16143.界面設計在Menu的工作區中選擇ResourceView在名為IDD_MENU_DIALOG的對話框作為應用程序的主窗口中進行界面設計。對話框中按鈕的設計借助于工具窗,在主窗口中安排三個命令按鈕。在命令按鈕上單擊右鍵,選Propertires在Puch Button Propertires的General上,輸入相應的ID和Caption重復三次,完成了三個按鈕的設
6、計。2022/7/16153.界面設計(續)2022/7/1616 設計的三個按鈕屬性對 象 IDCaption命令按鈕IDC_VOICE_BUTTON&Voice命令按鈕IDC_SHOW_BUTTON&Show命令按鈕IDC_EXTT_BUTTON&Exit對話框中菜單的設計插入資源Insert-Resource,顯示nsertResource對話框在資源列表選擇Menu項單擊按鈕New ,在資源文件中加一菜單資源。2022/7/1617(a)InsertResource對話框(b) 選擇Menu項(c)單擊按鈕New,加一菜單資源4. 給菜單連接一個類作為一個對象,菜單必須與一個類連接。這
7、個菜單是對話框中的一個資源,將它與對話框的派生類CMenuDlg相連接。菜單IDR_MENU1 連接了一個類,可調用該類的成員函數和成員變量。2022/7/16185.連接菜單和應用程序的主窗口為了在主窗口中顯示菜單,菜單還應連接主窗口。菜單與主窗口對話框(即IDD_MENU_DIALOG)的連接:在Menu工作區的Resource View選項卡中,雙擊Dialog文件夾中的IDD_MENU_DIALOG,彈出IDD_MENU_DIALOG對話框。在對話框內,單擊鼠標右鍵,在快捷菜單中選擇Properties命令,在對話框中的Menu組合框中選擇IDD_MENU12022/7/16196.應
8、用程序的代碼編程2022/7/1620(1) 給菜單File的Exit選項編寫代碼void CMenuDlg:OnExitMenu()OnOK();(2) 給File菜單的Voice項連接代碼void CMenuDlg:OnVioceMenu() MessageBeep(WORD)-1); DWORD iTime=GetCurrentTime() while(GetCurrentTime() AppWizard Step 1 - Dialog based(2) 給對話框添加菜單。Insert - Resource, 在Resource type -Menu - New按鈕為應用程序添加菜單資源
9、 - 設置菜單項屬性,各菜單項的屬性如表所示對象IDCaption菜單時間(&T)菜單項ID_YEAR_MENU年、月、日(&D)菜單項ID_HOUR_MENU小時、分鐘、秒(&H)菜單項ID_EXIT_MENU退出(&X)2022/7/1625-在菜單上單擊鼠標右鍵-在彈出菜單中選ClassWizard-出現了Add Class對話框-選擇Select an existing calss選項,單擊OK按鈕,-在彈出的對話框中選擇CMy12_5Dlg類,這樣就把菜單加入到對話框類中。-在Resource View選項卡中打開Dialog資源組,雙擊IDD_MY12_5_DIALOG,如下圖。鼠
10、標右鍵-Properties菜單項,在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菜單項的消息處理函數菜單項ID消息消息處理函數ID_YEAR_MENUCOMMANDOnYea
11、rMenu()ID_HOUR_MENUCOMMANDOnHourMenu()ID_EXIT_MENUCOMMANDOnExitMenu()void CMy12_5Dlg:OnYearMenu() /給“年、月、日”菜單項消息處理函數struct tm *newtime;/定義tm結構,存貯時間 time_t long_time;/定義保存時間的變量 char buffer10; time( &long_time );/獲取時間 newtime = localtime( &long_time ); /時間轉換 /將年月日輸出到編輯框中. _itoa(newtime-tm_year+1900,bu
12、ffer,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);2022/7/1628void CMy12_5Dlg:OnHourMenu() /給菜單項“小時、分、秒”加入代碼 struct tm *newtime;/定義tm結構,保存時間 time_t long_time;/定義保存時間的長整型變量 char buffer10; time( &long_time ); /獲取時間 newtime = localtime( &long_time ); /時間轉換/將小時,分鐘,秒輸出到編輯框中. _itoa(newtime-tm_hour,buffer,10);/tm_hour是當前小時 m_Hour_Edit.SetWindowText(LPCTSTR)(buffer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國易分散級氧化鐵數據監測報告
- 2025年中國無線滾球鼠標市場調查研究報告
- 2025年中國新型木制防火門市場調查研究報告
- 2025年中國數字測振儀數據監測研究報告
- 2025至2031年中國網盤行業投資前景及策略咨詢研究報告
- 2025至2031年中國紅外線防水型彩色攝像機行業投資前景及策略咨詢研究報告
- 肇慶市實驗中學高中歷史三:第課孫中山的民主追求高效課堂教學設計
- 2025至2031年中國維氏顯微硬度計行業投資前景及策略咨詢研究報告
- 新疆生產建設兵團二中學2025年初三下學期月考(一)英語試題試卷含答案
- 新疆維吾爾自治區烏魯木齊地區2025屆高三下學期第一次高考模擬歷史試題含解析
- 《內科常見病的診治》課件
- 《我的家鄉日喀則》課件
- 大學生勞動教育:勞動關系與勞動保障
- 專業合作社財務報表EXCEL三表
- 車輛租賃合同(無中介-非租車公司)(標準版)
- 物業業主見面會方案
- 油氣集輸管線工程施工組織設計方案
- 勞動保障協理員試題
- 安徽中等專業學校畢業生登記表
- 管式加熱爐煙氣低溫露點腐蝕
- 2023年和田地區體育教師招聘筆試題庫及答案
評論
0/150
提交評論