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

下載本文檔

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

文檔簡(jiǎn)介

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

2、,如:指明是菜單項(xiàng),如:#define IDM_MENU1 129#define IDM_MENU1 129F在菜單資源,必須鏈接到類中,通過(guò)提供類方在菜單資源,必須鏈接到類中,通過(guò)提供類方法來(lái)處理每個(gè)菜單項(xiàng)。法來(lái)處理每個(gè)菜單項(xiàng)。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 /菜單項(xiàng)菜單項(xiàng) MENUITEM &Show, IDC_SHOW_MENU MENUITEM &Show, IDC_SHOW_MENU /菜單項(xiàng)菜單項(xiàng) MENUITEM SEPARATORMENUITEM SEPARATOR /分隔線分隔線 MENUITEM &Exit, IDC_EXIT_MENU MENUITEM &Exit, IDC_EXIT_MENU /菜單項(xiàng)菜單項(xiàng) ENDEND /菜單菜單FileFile定義結(jié)束定義結(jié)束 POPUP &HelpPOPUP &

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

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

6、nu。F有三個(gè)按鈕:有三個(gè)按鈕:VoiceVoice、ShowShow和和ExitExit。F有兩個(gè)菜單:有兩個(gè)菜單:FileFile和和HelpHelp。FFileFile下拉出三個(gè)菜單項(xiàng):下拉出三個(gè)菜單項(xiàng):VoiceVoice、ShowShow和和Exit Exit 。 F單擊單擊VioceVioce選項(xiàng),可聽到選項(xiàng),可聽到PCPC機(jī)喇叭發(fā)出蜂鳴聲機(jī)喇叭發(fā)出蜂鳴聲F單擊單擊ShowShow,則彈出對(duì)話框,顯示信息,則彈出對(duì)話框,顯示信息“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對(duì)對(duì) 象象 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對(duì)話框?qū)υ捒?b) (b) 選擇選擇MenuMenu項(xiàng)項(xiàng)(c)(c)單擊按鈕單擊按鈕NewNew,加一菜,加一菜單資源單資源F對(duì)話框中菜單的設(shè)計(jì)對(duì)話框中菜單的設(shè)計(jì)插入資源插入資源Insert-ResourceInsert-Resource,顯示,顯示nsertResourcensertResource對(duì)對(duì)話框話框在資源列表選擇在資源列表選擇MenuMenu項(xiàng)項(xiàng)單擊按鈕單擊按鈕New New ,在資源文件,在資源文件Menu.rcMenu.rc中加一菜單資源。中加一菜單資源。3/5/2022184. 給菜單連接一個(gè)類給菜單連接一個(gè)類F作為一個(gè)對(duì)象,菜單必須與一個(gè)類連接。作為一個(gè)對(duì)象,菜單

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

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

11、Dlgvoid CMenuDlg:OnExitMenuOnExitMenu講義講義 OnOKOnOK講義講義; (2) 給給File菜單的菜單的Voice項(xiàng)連接代碼項(xiàng)連接代碼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) 給對(duì)話框添加菜單。給對(duì)話框添加菜單。Insert - Resource, Insert - Resource, 在在Resource type -Menu - Resource type -Menu - NewNew按鈕為應(yīng)用程序添加菜單資源按鈕為應(yīng)用程序添加菜單資源 - - 設(shè)置菜單項(xiàng)屬性,各菜單項(xiàng)的屬性如表設(shè)置菜單項(xiàng)屬性,各菜單項(xiàng)的屬性如表所示所示對(duì)象對(duì)象IDIDCaptionCaption菜單菜單時(shí)間時(shí)間(&T)(&T)菜單項(xiàng)

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

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

15、輯過(guò)的菜單的菜單的IDID:ID_MENU1ID_MENU1。這樣。這樣就把菜單加入到對(duì)話框中。就把菜單加入到對(duì)話框中。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菜單項(xiàng)的消息處理函數(shù)菜單項(xiàng)的消息處理函數(shù)菜單項(xiàng)菜單項(xiàng)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三三 /給給“年、月、日年、月、日”菜單項(xiàng)消息處理函數(shù)菜單項(xiàng)消息處理函數(shù)struct tm struct tm * *newtime;newtime;/定義定義tmtm結(jié)構(gòu)結(jié)構(gòu), ,存貯時(shí)間存貯時(shí)間 time_t long_time;time_t long_time;/定義保存時(shí)間的變量定義保存時(shí)間的變量 char buffer10;char buffer10; time( &lo

18、ng_time ); time( &long_time );/獲取時(shí)間獲取時(shí)間 newtime = localtime( &long_time ); /newtime = localtime( &long_time ); /時(shí)間轉(zhuǎn)換時(shí)間轉(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三三 /給菜單項(xiàng)給菜單項(xiàng)“小時(shí)、分、秒小時(shí)、分、秒”加入代碼加入代碼 struct tm struct tm * *newtime;newtime;/定義定義tmtm結(jié)構(gòu)結(jié)構(gòu), ,保存時(shí)間保存時(shí)間 time_t long_time;time_t long_time;/定義保存時(shí)間的長(zhǎng)整型變量定義保存時(shí)間的長(zhǎng)整型變量 char buffer10;char buffer10; time( &long_time ); time( &long_time )

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論