面向?qū)ο笈c可視化程序設(shè)計VisualC編程主講教師_第1頁
面向?qū)ο笈c可視化程序設(shè)計VisualC編程主講教師_第2頁
面向?qū)ο笈c可視化程序設(shè)計VisualC編程主講教師_第3頁
面向?qū)ο笈c可視化程序設(shè)計VisualC編程主講教師_第4頁
面向?qū)ο笈c可視化程序設(shè)計VisualC編程主講教師_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、面向?qū)ο笈c可視化程序設(shè)計VisualC編程主講教師3/5/202223/5/202233/5/202243/5/20225,F(xiàn)菜單是用戶與應(yīng)用程序交互的最常用手段。菜單是用戶與應(yīng)用程序交互的最常用手段。F菜單存放在資源腳本中,在程序運(yùn)行時調(diào)用。菜單存放在資源腳本中,在程序運(yùn)行時調(diào)用。F一個菜單項必須包含兩部分一個菜單項必須包含兩部分: :菜單項名稱菜單項名稱字符串構(gòu)成字符串構(gòu)成, ,例如:例如:filefile菜單項標(biāo)識符菜單項標(biāo)識符IDID整數(shù)值,可用整數(shù)常量表示整數(shù)值,可用整數(shù)常量表示F菜單標(biāo)識符菜單標(biāo)識符IDID在資源的頭文件中定義,前綴在資源的頭文件中定義,前綴IDMIDM指明是菜單項

2、,如:指明是菜單項,如:#define IDM_MENU1 129#define IDM_MENU1 129F在菜單資源,必須鏈接到類中,通過提供類方在菜單資源,必須鏈接到類中,通過提供類方法來處理每個菜單項。法來處理每個菜單項。3/5/20226IDR_MENU1 MENU DISCARDABLE IDR_MENU1 MENU DISCARDABLE BEGINBEGIN POPUP &File POPUP &File /定義定義FileFile菜單菜單 BEGINBEGIN /菜單菜單FileFile定義開始定義開始 MENUITEM &Voice, IDC_VOI

3、CE_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定義結(jié)束定義結(jié)束 POPUP &HelpPOPUP &

4、amp;Help /定義定義HelpHelp菜單菜單 BEGINBEGIN /菜單菜單HelpHelp定義開始定義開始 MENUITEM &About, IDC_ABOUT_MENU MENUITEM &About, IDC_ABOUT_MENU /菜單項菜單項 ENDEND /菜單菜單HelpHelp定義結(jié)束定義結(jié)束ENDENDF菜單模板用一種很簡單的結(jié)構(gòu)在資源腳本文菜單模板用一種很簡單的結(jié)構(gòu)在資源腳本文件中定義,一個菜單資源模板實(shí)例如下:件中定義,一個菜單資源模板實(shí)例如下:3/5/20227 3. CMenu類類FCMenuCMenu類是類是CobjectCobject類直

5、接派生的。類直接派生的。FCMenuCMenu類提供了許多處理菜單和菜單項的方法:類提供了許多處理菜單和菜單項的方法:構(gòu)造方法;構(gòu)造方法;菜單操作方法;菜單操作方法;菜單項操作方法;菜單項操作方法;虛擬方法。虛擬方法。3/5/20228 3. CMenu類(續(xù))類(續(xù))F構(gòu)造方法用于建立構(gòu)造方法用于建立WindowsWindows菜單,并在運(yùn)行時將菜單,并在運(yùn)行時將它們附加到它們附加到CMenuCMenu對象上,對象上,3/5/202293/5/2022103/5/2022113/5/202212F主窗口標(biāo)題為主窗口標(biāo)題為Application of MenuApplication of Me

6、nu。F有三個按鈕:有三個按鈕:VoiceVoice、ShowShow和和ExitExit。F有兩個菜單:有兩個菜單:FileFile和和HelpHelp。FFileFile下拉出三個菜單項:下拉出三個菜單項:VoiceVoice、ShowShow和和Exit Exit 。 F單擊單擊VioceVioce選項,可聽到選項,可聽到PCPC機(jī)喇叭發(fā)出蜂鳴聲機(jī)喇叭發(fā)出蜂鳴聲F單擊單擊ShowShow,則彈出對話框,顯示信息,則彈出對話框,顯示信息“This is a This is a Sle of adding menu”Sle of adding menu”。F單擊單擊ExitExit,則退出。

7、,則退出。3/5/202213主窗口布局如下圖;主窗口布局如下圖;3/5/2022143/5/2022153/5/202216對對 象象 IDIDCaptionCaption命令按鈕命令按鈕IDC_VOICE_BUTTONIDC_VOICE_BUTTON &Voice&Voice命令按鈕命令按鈕IDC_SHOW_BUTTONIDC_SHOW_BUTTON&Show&Show命令按鈕命令按鈕IDC_EXTT_BUTTONIDC_EXTT_BUTTON&Exit&Exit3/5/202217(a)Insert(a)InsertResourceReso

8、urce對話框?qū)υ捒?b) (b) 選擇選擇MenuMenu項項(c)(c)單擊按鈕單擊按鈕NewNew,加一菜,加一菜單資源單資源F對話框中菜單的設(shè)計對話框中菜單的設(shè)計插入資源插入資源Insert-ResourceInsert-Resource,顯示,顯示nsertResourcensertResource對對話框話框在資源列表選擇在資源列表選擇MenuMenu項項單擊按鈕單擊按鈕New New ,在資源文件,在資源文件Menu.rcMenu.rc中加一菜單資源。中加一菜單資源。3/5/2022184. 給菜單連接一個類給菜單連接一個類F作為一個對象,菜單必須與一個類連接。作為一個對象,菜單

9、必須與一個類連接。F這個菜單是對話框中的一個資源,將它與對話框這個菜單是對話框中的一個資源,將它與對話框的派生類的派生類CMenuDlgCMenuDlg相連接。相連接。F菜單菜單IDR_MENU1 IDR_MENU1 連接了一個類,可調(diào)用該類的成連接了一個類,可調(diào)用該類的成員函數(shù)和成員變量。員函數(shù)和成員變量。3/5/202219F為了在主窗口中顯示菜單,菜單還應(yīng)連接主窗口。為了在主窗口中顯示菜單,菜單還應(yīng)連接主窗口。F菜單與主窗口對話框菜單與主窗口對話框( (即即IDD_MENU_DIALOG)IDD_MENU_DIALOG)的連接:的連接: 在在MenuMenu工作區(qū)的工作區(qū)的Resourc

10、e ViewResource View選項卡中,雙擊選項卡中,雙擊DialogDialog文件夾中的文件夾中的IDD_MENU_DIALOGIDD_MENU_DIALOG,彈出,彈出IDD_MENU_DIALOGIDD_MENU_DIALOG對話框。對話框。 在對話框內(nèi),單擊鼠標(biāo)右鍵,在快捷菜單中選擇在對話框內(nèi),單擊鼠標(biāo)右鍵,在快捷菜單中選擇PropertiesProperties命令,在對話命令,在對話框中的框中的MenuMenu組合框中選擇組合框中選擇IDD_MENU1IDD_MENU13/5/202220(1) 給菜單給菜單File的的Exit選項編寫代碼選項編寫代碼void CMenu

11、Dlgvoid CMenuDlg:OnExitMenuOnExitMenu講義講義 OnOKOnOK講義講義; (2) 給給File菜單的菜單的Voice項連接代碼項連接代碼void CMenuDlgvoid CMenuDlg:OnVioceMenuOnVioceMenu講義講義 MessageBeep MessageBeep(WORDWORD)-1-1);); DWORD iTime=GetCurrentTimeDWORD iTime=GetCurrentTime講義講義 whilewhile(GetCurrentTimeGetCurrentTime講義講義 iTime+500 AppWiz

12、ard Step 1 - Dialog based(1) MFC - AppWizard Step 1 - Dialog based(2) (2) 給對話框添加菜單。給對話框添加菜單。Insert - Resource, Insert - Resource, 在在Resource type -Menu - Resource type -Menu - NewNew按鈕為應(yīng)用程序添加菜單資源按鈕為應(yīng)用程序添加菜單資源 - - 設(shè)置菜單項屬性,各菜單項的屬性如表設(shè)置菜單項屬性,各菜單項的屬性如表所示所示對象對象IDIDCaptionCaption菜單菜單時間時間(&T)(&T)菜單項

13、菜單項 ID_YEAR_MENUID_YEAR_MENU年、月、日年、月、日(&D)(&D)菜單項菜單項ID_HOUR_MENUID_HOUR_MENU 小時、分鐘、秒小時、分鐘、秒(&H)(&H)菜單項菜單項 ID_EXIT_MENUID_EXIT_MENU退出退出(&X)(&X)3/5/202225- -在菜單上單擊鼠標(biāo)右鍵在菜單上單擊鼠標(biāo)右鍵- -在彈出菜單中選在彈出菜單中選ClassWizardClassWizard- -出現(xiàn)了出現(xiàn)了Add ClassAdd Class對話框?qū)υ捒? -選擇選擇Select an existing cal

14、ssSelect an existing calss選項,單擊選項,單擊OKOK按鈕,按鈕,- -在彈出的對話框中選擇在彈出的對話框中選擇CMy12_5DlgCMy12_5Dlg類,這樣就把菜單加入到對話框類類,這樣就把菜單加入到對話框類中。中。- -在在Resource ViewResource View選項卡中打開選項卡中打開DialogDialog資源組,雙擊資源組,雙擊IDD_MY12_5_DIALOGIDD_MY12_5_DIALOG,如下圖。,如下圖。鼠標(biāo)右鍵鼠標(biāo)右鍵- -PropertiesProperties菜單項,菜單項,在在MenuMenu列表框中選擇編輯過的列表框中選擇編

15、輯過的菜單的菜單的IDID:ID_MENU1ID_MENU1。這樣。這樣就把菜單加入到對話框中。就把菜單加入到對話框中。3/5/202226IDID變量變量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_EDITm_Minute_E

16、ditm_Minute_EditID_SECOND_EDITID_SECOND_EDITm_Second_Editm_Second_EditID_EXIT_BUTTONID_EXIT_BUTTONE&xitE&xit3/5/202227菜單項的消息處理函數(shù)菜單項的消息處理函數(shù)菜單項菜單項IDID消息消息消息處理函數(shù)消息處理函數(shù)ID_YEAR_MENUID_YEAR_MENUCOMMANDCOMMANDOnYearMenuOnYearMenu三三ID_HOUR_MENUID_HOUR_MENUCOMMANDCOMMANDOnHourMenuOnHourMenu三三ID_EXIT_

17、MENUID_EXIT_MENUCOMMANDCOMMANDOnExitMenuOnExitMenu三三void CMy12_5Dlg:OnYearMenuvoid CMy12_5Dlg:OnYearMenu三三 /給給“年、月、日年、月、日”菜單項消息處理函數(shù)菜單項消息處理函數(shù)struct tm struct tm * *newtime;newtime;/定義定義tmtm結(jié)構(gòu)結(jié)構(gòu), ,存貯時間存貯時間 time_t long_time;time_t long_time;/定義保存時間的變量定義保存時間的變量 char buffer10;char buffer10; time( &lo

18、ng_time ); time( &long_time );/獲取時間獲取時間 newtime = localtime( &long_time ); /newtime = localtime( &long_time ); /時間轉(zhuǎn)換時間轉(zhuǎn)換 /將年月日輸出到編輯框中將年月日輸出到編輯框中. . _itoa(newtime-tm_year+1900,buffer,10);/tm_year _itoa(newtime-tm_year+1900,buffer,10);/tm_year是當(dāng)前年份和是當(dāng)前年份和19001900之差之差 m_Year_Edit.SetWindowT

19、ext(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是當(dāng)前月份是當(dāng)前月份 m_Month_Edit.SetWindowText(LPCTSTR)(buffer);m_Month_Edit.SetWindowText(LPCTSTR)(buffer); _itoa(newtime-tm_mday,buffer,10); _itoa(newtime-tm_m

20、day,buffer,10);/tm_mday/tm_mday是當(dāng)前日是當(dāng)前日 m_Day_Edit.SetWindowText(LPCTSTR)(buffer);m_Day_Edit.SetWindowText(LPCTSTR)(buffer); 3/5/202228void CMy12_5Dlg:OnHourMenuvoid CMy12_5Dlg:OnHourMenu三三 /給菜單項給菜單項“小時、分、秒小時、分、秒”加入代碼加入代碼 struct tm struct tm * *newtime;newtime;/定義定義tmtm結(jié)構(gòu)結(jié)構(gòu), ,保存時間保存時間 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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論