![C++實(shí)驗(yàn)四總結(jié)報(bào)告_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f0388131-9b03-457b-9f85-ee6a8161b4ba/f0388131-9b03-457b-9f85-ee6a8161b4ba1.gif)
![C++實(shí)驗(yàn)四總結(jié)報(bào)告_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f0388131-9b03-457b-9f85-ee6a8161b4ba/f0388131-9b03-457b-9f85-ee6a8161b4ba2.gif)
![C++實(shí)驗(yàn)四總結(jié)報(bào)告_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f0388131-9b03-457b-9f85-ee6a8161b4ba/f0388131-9b03-457b-9f85-ee6a8161b4ba3.gif)
![C++實(shí)驗(yàn)四總結(jié)報(bào)告_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f0388131-9b03-457b-9f85-ee6a8161b4ba/f0388131-9b03-457b-9f85-ee6a8161b4ba4.gif)
![C++實(shí)驗(yàn)四總結(jié)報(bào)告_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/14/f0388131-9b03-457b-9f85-ee6a8161b4ba/f0388131-9b03-457b-9f85-ee6a8161b4ba5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)常用控件(1)實(shí)驗(yàn)?zāi)康暮鸵笏尽?1) 創(chuàng)建一個(gè)默認(rèn)的對(duì)話框應(yīng)用程序Ex_Ctrls,如圖2.1(2) 設(shè)計(jì)一個(gè)如圖2.2所示的“課程信息”對(duì)話框。課程號(hào):21CI52E1課程容秫:軟件工程 所屈專業(yè):機(jī)械工程及K自動(dòng)牝:專瞠:3:60:2 0-漏加I吐需崽退岀I課提號(hào):|Z1D5£2I課程名?。核怪疲很涰ば?機(jī)械工程及Eg動(dòng)化J1專6創(chuàng)刪孰:P慄吋數(shù);|60h M:j|取消1圖2.2 “課程信息”對(duì)話框圖2.1 Ex Ctrls對(duì)話框創(chuàng)建一個(gè)默認(rèn)的對(duì)話框應(yīng)用程序 選擇“文件” 在工程框中輸入 Ex_Ctrls,并將工程文件夾定位到“ 單擊“確定”按鈕,Ex_Ctrls7“
2、新建”菜單,在彈出的“新建”對(duì)話框中選擇“工程”頁(yè)面,選擇MFC AppWizard Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)2”。在出現(xiàn)的Step 1對(duì)話框中選擇“基本對(duì)話(框)”應(yīng)用程序類型,單擊“完成”按鈕。 在對(duì)話框編輯器中, 改為“使用控件”。 調(diào)整對(duì)話框的大小,單擊對(duì)話框工具欄上的切換網(wǎng)格按鈕顯示對(duì)話框網(wǎng)格,將對(duì)話框標(biāo)題刪除對(duì)話框中間的“TODO:在這里設(shè)置對(duì)話控制?!膘o態(tài)文本控件和“確,并移至對(duì)話框的下方。向?qū)υ捒蛑刑砑咏M框(Group)控件,標(biāo)題設(shè)為“添加”,然后調(diào)整其大小和位置。添加一個(gè)按鈕,標(biāo)題設(shè)為“課程信息”,ID設(shè)為IDC_BUTTON_COURSE。添加一個(gè)列表框,取其默認(rèn)ID
3、號(hào),去掉Sort風(fēng)格屬性。添加并設(shè)計(jì)“課程信息”對(duì)話框按Ctrl+R快捷鍵,彈出“插入資源”對(duì)話框,在資源類型列表中選擇定”按鈕控件,將“取消”按鈕標(biāo)題改為“退出”3. 鈕。Dialog,單擊“新建”按(3)實(shí)現(xiàn)功能:?jiǎn)螕魣D2.1中的“課程信息”按鈕,彈出“學(xué)生基本信息”對(duì)話框,單擊“添加” 按鈕,對(duì)話框內(nèi)容顯示在圖2.1中的列表框中。實(shí)驗(yàn)準(zhǔn)備和說明(1) 具備知識(shí):靜態(tài)控件、按鈕、編輯框、旋轉(zhuǎn)按鈕控件、列表框和組合框控件。(2) 創(chuàng)建本次實(shí)驗(yàn)工作文件夾“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)2”。實(shí)驗(yàn)內(nèi)容和步驟1. 啟動(dòng) Visual C+ 6.0打開計(jì)算機(jī),啟動(dòng) Visual C+ 6.0系統(tǒng)。2
4、. (exe),,字體設(shè)為“宋體,9號(hào)”。將OK和Can cel按鈕的標(biāo)題改為“添加”和“取消”。打開對(duì)話框網(wǎng)格,參看圖2.2的控件布局,為對(duì)話框添加如表2.1所示的一些控件。 將該對(duì)話框資源的ID設(shè)為IDD_COURSE,標(biāo)題設(shè)為“課程信息”表2.1課程信息對(duì)話框添加的控件添加的控件ID號(hào)標(biāo)題其他屬性編輯框(課程號(hào))IDC_EDIT_COURSENO默認(rèn)編輯框(課程名稱)IDC_EDIT_COURSENAME默認(rèn)組合框(所屬專業(yè))IDC_COMBO_S PECIAL默認(rèn)組合框(課程類型)IDC_COMBO_T YPE默認(rèn)編輯框(開課學(xué)期)IDC_EDIT_ OPEN默認(rèn)旋轉(zhuǎn)按鈕IDC_S P
5、IN1Auto buddy、Set buddy integer、Right對(duì)齊,其余默認(rèn)編輯框(課時(shí)數(shù))IDC_EDIT_COURSEHOURS默認(rèn)編輯框(學(xué)分)IDC_EDIT_CREDIT默認(rèn)右擊添加的課程類型的組合框控件,從彈出的快捷菜單中選擇“屬性”命令,將其屬性對(duì)話框 切換到Data頁(yè)面,直接輸入內(nèi)容,輸入一行后按Ctrl+回車鍵添加另一行。同樣對(duì)另一個(gè)組合框控件Combo Box JSH些覽常規(guī)藪奩T祁式擴(kuò)也進(jìn)行修改。結(jié)果如圖2.3所示。CcBbo )DX rrcpertiez審豐 General ! Data I Styles I Exlerded StylESNft人 列裹框
6、項(xiàng):±1龜入列 表框項(xiàng) 目:Sglli圖2.3課程類型組合框內(nèi)容輸入IDD COURSE創(chuàng)建一個(gè)對(duì)話框按Ctrl+W快捷鍵或雙擊對(duì)話框資源模板的空白處,為CCourseDIg。打開 ClassWizard的Member Variables頁(yè)面,看 Class name是否是 CCourseDlg,選中所需的控 件ID號(hào),雙擊鼠標(biāo)。依次為表2.2控件增加成員變量。表2.2 控件變量控件ID號(hào)變量類別變量類型變量名IDC_EDIT_COURSENOValueCStringm_strNOIDC_EDIT_COURSENAMEValueCStringm_strNameIDC_COMBO_S
7、PECIALValueCStringm_strS pecialIDC_COMBO_S PECIALControlCComboBoxm_comboS pecialIDC_COMBO_T YPEValueCStringm_strT ypeIDC_EDIT_ OPENValueBYTEm_nOpenIDC_S PIN1ControlCSp inButtonCtrlm_spinOpenIDC_EDIT_COURSEHOURSValueintm_nHoursIDC EDIT CREDITValuefloatm fCredit范圍和大小4.添加CCourseDIg類代碼 用MFC ClassWizard為
8、CCourseDlg類添加 WM_INITDIALOG 消息映射,并添加下列初始化代碼:BOOL CCourseDlg:OnlnitDialog() CDialog:OnInitDialog();m_sp inO pen.SetRange( 1,8 );m_nHours = 60;m_fCredit = 2.0;m_nOpen = 1;m_strTy pe ="專修"m_strSpecial ="機(jī)械工程及其自動(dòng)化"/有改動(dòng) Up dateData(FALSE);return TRUE; / return TRUE unless you set the
9、focus to a control用MFC Classwizard為按鈕IDOK添加BN_CLICKED的消息映射,并增加下列代碼:void CCourseDlg:OnOK() Up dateData();m_strNO.TrimLeft();if (m_strNO.IsE mp ty()MessageBox("課程號(hào)不能為空!");m_strName.TrimLeft();if (m_strName.IsE mp ty()MessageBox("課程名稱不能為空!"); CDialog:OnOK();return;return;5.m_List, 列
10、代碼:添加CEx_CtrlsDlg程序代碼按Ctrl+W 快捷鍵,打開 MFC ClassWizard對(duì)話框,為列表框控件類型為CListBox。用MFC ClassWizard為按鈕IDC_BUTTON_COURSE 添加BN_CLICKED 消息映射,并添加下IDC_LIST1添加控件變量"+dlg.m_strNO); "+dlg.m_strName); "+dlg.m_strS pecial); "+dlg.m_strT yp e);課程號(hào): 課程名稱: 所屬專業(yè): 課程類型:void CEx_CtrlsDlg:OnButtonCourse()CC
11、ourseDlg dlg;if (IDOK != dlg.DoModal() return;/清除列表框原來的顯示內(nèi)容while(m_List.GetCount()!=O) m_List.DeleteString(O); m_List.AddString(" m_List.AddString(" m_List.AddString(" m_List.AddString("CString str; str.Format("開課學(xué)期: m_List.AddString( str ); str.Format("課 時(shí) 數(shù): m_List.Ad
12、dString( str ); str.Format("學(xué) 分: m_List.AddString( str );%d", dlg.m_ nOpen );%d", dlg.m_nHours );%3.1f", dlg.m_fCredit); 在Ex_CtrlsDlg.cpp文件的前面添加 CInputDIg的頭文件包含:#include "Ex_CtrlsDlg.h"#include "CourseDlg.h" 在“工程”一“設(shè)置”常規(guī)選項(xiàng)里,選擇使用MFC作為靜態(tài)鏈接庫(kù) 編譯運(yùn)行并測(cè)試。6.寫出實(shí)驗(yàn)報(bào)告 分析上述
13、運(yùn)行結(jié)果以及思考與練習(xí),寫出實(shí)驗(yàn)報(bào)告。思考與練習(xí)(1 )為CCourseDlg類添加一個(gè)公有型 CString成員變量 m_strOKText,當(dāng)通過 CCourseDlg類對(duì)象 將m_strOKText設(shè)為“修改”,CCourseDlg對(duì)話框中的“添加”按鈕標(biāo)題變成“修改”,試編程實(shí)現(xiàn)。(2)由于每學(xué)期的一門課程學(xué)分一般不超過6個(gè)學(xué)分,因此若將學(xué)分編輯框改為組合框,應(yīng)如何修改和編程?實(shí)驗(yàn)常用控件(2)實(shí)驗(yàn)?zāi)康暮鸵?1) 設(shè)計(jì)一個(gè)如圖3.1所示的“學(xué)生基本信息”對(duì)話框。(2) 在實(shí)驗(yàn)2的基礎(chǔ)上,實(shí)現(xiàn)功能:在圖2.1中的“課程信息”按鈕下方添加一個(gè)“學(xué)生基本信息”按鈕,單擊該按鈕,彈出“學(xué)生基
14、本信息”對(duì)話框,單擊“添加”按鈕,學(xué)生基本信息顯示在列表框中。3個(gè)分量:(3) 在CEx_CtrlsDlg對(duì)話框中添加一個(gè)滾動(dòng)條和兩個(gè)滑動(dòng)條來調(diào)整對(duì)話框的背景顏色的R (紅色分量)、G (綠色分量)和 B (藍(lán)色分量),結(jié)果如圖3.2所示。名;號(hào):剔:出生日閒:|a22(o二pN學(xué)號(hào):21010501性別臨出生年月;冊(cè)叫1-(1 孵專業(yè):鵬工程履目機(jī)I虹I I“I圖3.1 “學(xué)生基本信息”對(duì)話框圖3.2設(shè)置對(duì)話框背景顏色實(shí)驗(yàn)準(zhǔn)備和說明(1) 具備知識(shí):滾動(dòng)條、進(jìn)展條、滑動(dòng)條、時(shí)間和日歷控件。(2) 創(chuàng)建本次實(shí)驗(yàn)工作文件夾“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)3”。實(shí)驗(yàn)內(nèi)容和步驟1. 在實(shí)驗(yàn)3的工作文
15、件夾中復(fù)制 Ex_Ctrls文件夾 將本書實(shí)驗(yàn)2中的Ex_Ctrls文件夾復(fù)制到實(shí)驗(yàn) 3的工作文件夾中。2. 啟動(dòng) Visual C+ 6.0 啟動(dòng) Visual C+ 6.0 系統(tǒng)。3. 創(chuàng)建并添加“學(xué)生基本信息”對(duì)話框?qū)嶒?yàn)實(shí)驗(yàn)3Ex_Ctrls ”文件夾中“學(xué)生成績(jī)輸入”,將對(duì)話框字體 選擇“文件”7“打開工作區(qū)”菜單,將“'Visual C+程序的Ex_Ctrls項(xiàng)目打開。 添加一個(gè)新的對(duì)話框資源,將ID號(hào)改為IDD_INPUT ,標(biāo)題為改為“宋體,9號(hào)”。將OK和Cancel按鈕標(biāo)題改為“確定”和“取消” 調(diào)整對(duì)話框的大小,將“確定”和“取消”按鈕移至對(duì)話框的下方,然后顯示對(duì)話
16、框網(wǎng)格。 參看圖3.1,向?qū)υ捒蛱砑尤绫?3.1所示的控件。添加兩個(gè)“單選按鈕”廠舅int型并在第一個(gè)按鈕“男”的屬性 一常規(guī)選項(xiàng)勾選“組”,并對(duì)第一個(gè)按鈕增加成員變量 m bMale。第二個(gè)按鈕不用勾選和增加。表3.1學(xué)生基本信息對(duì)話框添加的控件添加的控件ID號(hào)標(biāo)題其他屬性編輯框IDC_EDIT_NAME默認(rèn)編輯框IDC_EDIT_NO默認(rèn)編輯框IDC_EDIT_S1默認(rèn)旋轉(zhuǎn)按鈕控件IDC_S PIN _S1Auto buddy、Right 對(duì)齊編輯框IDC_EDIT_S2默認(rèn)旋轉(zhuǎn)按鈕控件IDC_S PIN _S2Auto buddy、Set buddy integer、Right 對(duì)齊編輯
17、框IDC_EDIT_S3默認(rèn)旋轉(zhuǎn)按鈕控件IDC_S PIN _S3Auto budOdy、Set buddy integer、Right 對(duì)齊編輯框IDC SPECIAL默認(rèn) 雙擊對(duì)話框模板空白處,為該對(duì)話框模板創(chuàng)建一個(gè)對(duì)話框類CInputDIg。CInputDIg, 在MFC Classwizard的Member Variables頁(yè)面中,確定 Class name中是否已選擇了選中所需的控件ID號(hào),雙擊鼠標(biāo)或單擊Add Variables按鈕。依次為表 3.2控件增加成員變量。表3.2控件變量控件ID號(hào)變量類別變量類型變量名范圍和大小1IDC_EDIT_NAMEValueCStringm_
18、strName20IDC_EDIT_NOValueCStringm_strNo20IDC_EDIT_S1Valueintm_fScore10.0 100.0IDC_S PIN _S1ControlCSp inButtonCtrlm_spi nScore1IDC_EDIT_S2Valueintm_fScore20.0 100.0IDC_S PIN _S2ControlCSp inButtonCtrlm_spi nScore2IDC_EDIT_S3Valueintm_fScore30.0 100.0IDC_S PIN _S3ControlCsp inButtonCtrlm_spi nScore3I
19、DC SPECIALValueCStringm strS pecial 在 MFC ClassWizard 的 Messsage Maps頁(yè)面中,為 CInputDlg 添加 WM_INITDIALOG 消息映射, 并添加下列代碼:BOOL CIn pu tDlg:OnlnitDialog() CDialog:OnlnitDialog();m_spinScore1.SetRange( 0, 100 );/ 設(shè)置旋轉(zhuǎn)按鈕控件范圍m_s pinScore2.SetRange( 0, 100 );m_s pinScore3.SetRange( 0, 100 );return TRUE; / retu
20、rn TRUE unless you set the focus to a control加下列代碼:用 MFC Classwizard 為 CInputDIg 增加 IDC_SPIN_S1 控件的UDN_DELTAPOS 消息映射,并添void CInputDlg:OnDeltaposSpinS1(NMHDR * pNMHDR, LRESULT * pResult) NM_UPDOWN * pNMUpDown = (NM_UPDOWN *)pNMHDR;UpdateData(TRUE);/將控件的內(nèi)容保存到變量中m_fScore1 += (float)pNMUpDown - >iDel
21、ta * 0.5;/將m_fScore1 等定義為 int型if (m_fScore1<0) m_fScore1 = 0;if (m_fScore1>100) m_fScore1 = 100;UpdateData(FALSE);/將變量的內(nèi)容顯示在控件中*p Result = 0;打開IDD_EX_CTRLS_DIALOG對(duì)話框資源,在“課程信息”按鈕下方添加一個(gè)“學(xué)生基本信息”按鈕,并將 ID號(hào)設(shè)為IDC_BUTTON_STUINFO 。用MFC ClassWizard為按鈕IDC_BUTTON_STUINFO 添加BN_CLICKED 消息映射,并添加下 列代碼:void CE
22、x_CtrlsDlg:OnButtonStuinfo() CIn pu tDlg dlg;if (IDOK != dlg.DoModal() return;while(m_List.GetCount()!=O)m_List.DeleteString(O);CString strSex("男");女""+dlg.m_strName);"+dlg.m_strNo);"+strSex);if (dlg.m_bMale) strSex ="m_List.AddString("姓名:m_List.AddString(&quo
23、t;學(xué)號(hào):m_List.AddString("性別:CString str;修改了接下來這三條語(yǔ)句str.Format("出生日期:d-%d-%d", dlg.m_fScore1,dlg.m_fScore2,dlg.m_fScore3); m_List.AddString( str );m_List.AddString("所學(xué)專業(yè):"+dlg.m_strSpecial);在Ex_CtrlsDlg.cpp文件的前面添加 CStuInfoDIg類的頭文件包含:#include "CourseDIg.h"#include &quo
24、t;In putDIg.h"編譯運(yùn)行并測(cè)試。結(jié)果如圖3.3所示。/在“工程”一“設(shè)置”常規(guī)選項(xiàng)里,選擇使用 MFC作為靜態(tài)鏈接庫(kù)姓名:李明學(xué)號(hào):ilOlQSOL性Sd:男蛍生年月:906-01-01鞘宇等業(yè):機(jī)械工程茂其目動(dòng)化退岀 I4.改變對(duì)話框背景顏色 將項(xiàng)目工作區(qū)窗口切換到 打開對(duì)話框網(wǎng)格,參看圖圖3.3學(xué)生基本信息添加后的結(jié)果ResourceView 頁(yè)面,打開 IDD_EX_CTRLS_DIALOG對(duì)話框資源。3.2的控件布局,為對(duì)話框添加如表3.3所示的一些控件。表3.3添加的控件添加的控件ID號(hào)標(biāo)題其他屬性垂直滾動(dòng)條 滑動(dòng)條(綠色) 滑動(dòng)條(藍(lán)色)IDC_SCROLLB
25、AR_REDIDC_SLIDER_GREENIDC SLIDER BLUE默認(rèn)方位為Vertical,其他默認(rèn) 方位為Vertical,其他默認(rèn)用MFC Classwizard為表3.4控件添加成員變量。表3.4控件變量控件ID號(hào)11變量類別變量類型變量名IDC_SCROLLBAR_REDControlCScrollBarm_scrollRedIDC_SLIDER_GREENControlCSliderCtrlm_sliderGree nIDC_SLIDER_GREENValueintm_nGreenIDC_SLIDER_BLUEControlCSliderCtrlm_sliderBlueID
26、C SLIDER BLUEValueintm nBlue范圍和大小lDD_Afl_DIftLOG >; in_scrollRed; n_sliderGreen; liderBlue; mUist; Pi_nBlue: mnGreen; (n_nRed; in_Brush;為CEx_CtrlsDlg類添加兩個(gè)成員變量,一個(gè)是int型m_nRed,用來設(shè)置顏色 R、G、B中的紅色分量,另一個(gè)是畫刷CBrush類對(duì)象m_Brush,用來設(shè)置對(duì)話框背景所需要的畫刷。方法:在Ex_CtrlsDlg.h頭文件內(nèi)找到相應(yīng)位置按下圖添加。/ Dialog Data /<AFN_DnTACCAaDl
27、g) 亡num IDD CScrollBar CSliderCtrl CSliderCtrl CListBox int int int CBrush函數(shù)中添加下列代碼: 在 CEx_CtrlsDlg:OninitDialogBOOL CEx_CtrlsDlg:OnlnitDialog() m_scrollRed.SetScrollRange(O, 255); m_sliderBlue.SetRange(0, 255); m_sliderGreen.SetRange(0, 255); m_nBlue = m_nGreen = m_nRed = 192; Up dateData( FALSE );
28、 m_scrollRed.SetScroll Pos(m_nRed); return TRUE; / return TRUE unless you set the focus to a control/設(shè)置顏色調(diào)節(jié)范圍初始化對(duì)話框背景顏色用 MFC Classwizard 為 CEx_CtrlsDlg 類映射 WM_VSCROLL 消息,并添加下列代碼:void CEx_CtrlsDlg:OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)int nID = pScrollBar - >GetDlgCtrlID(); if
29、(nID = IDC_SCROLLBAR_RED) switch(nSBCode) case SB LINEUP:/獲取對(duì)話框中控件ID號(hào)或是滾動(dòng)條產(chǎn)生的水平滾動(dòng)消息m_nRed-;break; m_nRed+;break; m_nRed - = 10;break;case SB_P AGEDOWN:m_nRed += 10;break;case SB_THUMBTRACK:m_nRed = nP os;break;case SB LINEDOWN:case SB PAGEUP:/單擊滾動(dòng)條向上箭頭/單擊滾動(dòng)條向下箭頭if (m_nRed<0) m_nRed = 0;if (m_nRed
30、>255) m_nRed = 255; m_scrollRed.SetSc IPo s(m_nRed);Invalidate();/使對(duì)話框無效,強(qiáng)迫系統(tǒng)重繪對(duì)話框CDialog:OnVScroll(nSBCode, n Pos, p ScrollBar);用MFC ClassWizard為CEx_CtrlsDlg類映射 WM_CTLCOLOR 消息,并添加下列代碼:HBRUSH CEx_CtrlsDlg:OnCtlColor(CDC * pDC, CWnd * pWnd, UINT nCtlColor)/HBRUSH hbr = CDialog:OnCtlColor( pDC, pWn
31、d, nCtlColor); Up dateData(TRUE);COLORREF color = RGB(m_nRed, m_nGreen, m_nBlue); m_Brush.Detach();m_Brush.CreateSolidBrush(color); pDC- >SetBkColor( color ); return (HBRUSH)m_Brush;/使畫刷和對(duì)象分離/創(chuàng)建顏色畫刷設(shè)置背景顏色返回畫刷句柄,以便系統(tǒng)使此畫刷繪制對(duì)話框 編譯運(yùn)行并測(cè)試。5.寫出實(shí)驗(yàn)報(bào)告分析上述運(yùn)行結(jié)果以及思考與練習(xí),寫出實(shí)驗(yàn)報(bào)告。思考與練習(xí)(1) 若將控制綠色和藍(lán)色顏色分量的滑動(dòng)條全部換成滾動(dòng)條
32、,則代碼應(yīng)如何修改?(2) 若將CEx_CtrlsDlg對(duì)話框中的列表框換成靜態(tài)文本,并用于顯示信息,則應(yīng)如何實(shí)現(xiàn)?實(shí)驗(yàn)菜單、工具欄和狀態(tài)欄實(shí)驗(yàn)?zāi)康暮蛢?nèi)容(1) 創(chuàng)建一個(gè)單文檔應(yīng)用程序Ex_SDI。在“查看”菜單下添加一個(gè)子菜單“鼠標(biāo)位置” ,ID為ID_VIEW_MOUSE,當(dāng)選擇該菜單命令后,鼠標(biāo)當(dāng)前的位置顯示到狀態(tài)欄上,同時(shí)該菜單項(xiàng) 呈選中狀態(tài)。再次選擇該菜單命令, 狀態(tài)欄不再顯示當(dāng)前鼠標(biāo)位置,同時(shí)該菜單項(xiàng)的選中狀態(tài)被去除。(2) 在工具欄上添加并設(shè)計(jì)一個(gè)工具按鈕圖標(biāo),使該按鈕和添加一個(gè)快捷鍵Ctrl+M和該菜單命令聯(lián)動(dòng)。(3) 在窗口客戶區(qū)中右擊鼠標(biāo),彈出快捷菜單,顯示主菜單“查看”中
33、的菜單命令。結(jié)果如圖 所示。ID_VIEW_MOUSE菜單命令聯(lián)動(dòng),并5.153 無耘 e - aH m 窓 cjy工具欄CD屮弒戀欄國(guó)屮K標(biāo)位査CM3 Clri+l199r110圖5.1 Ex SDI運(yùn)行結(jié)果實(shí)驗(yàn)準(zhǔn)備和說明(1 )具備知識(shí):(2)創(chuàng)建本次實(shí)驗(yàn)工作文件夾“實(shí)驗(yàn)內(nèi)容和步驟1. 啟動(dòng) Visual C+ 6.0打開計(jì)算機(jī),啟動(dòng) Visual C+ 6.0系統(tǒng)。2. 用MFC AppWizard ( exe)創(chuàng)建一個(gè)默認(rèn)的單文檔應(yīng)用程序Ex_SDI選擇“文件”7“新建”菜單,在彈出的“新建”對(duì)話框中選擇“工程”標(biāo)簽,在應(yīng)用程序項(xiàng)菜單、工具條和狀態(tài)欄。Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)5”
34、。目類型列表框中選擇 MFC AppWizard ( exe)的項(xiàng)目類型,將工程文件夾定位到“Visual C+程序?qū)嶒?yàn)實(shí)驗(yàn)5”,并在工程框中輸入項(xiàng)目名Ex_SDI。Single Document, SDI)應(yīng)用程序類 單擊“確定”按鈕,從出現(xiàn)的對(duì)話框中,選擇單個(gè)文檔( 型。 保留其他的默認(rèn)選項(xiàng),單擊“完成”按鈕出現(xiàn)一個(gè)對(duì)話框,顯示出用戶在步驟中作出的選擇, 單擊“確定”按鈕,系統(tǒng)開始創(chuàng)建。3.添加菜單 在項(xiàng)目工作區(qū)窗口中選擇ResourceView頁(yè)面,雙擊資源 Menu項(xiàng)中的IDR_ MAINFRAME ,則菜單編輯器窗口出現(xiàn)在主界面的右邊,相應(yīng)的Ex_SDI項(xiàng)目的菜單資源被顯示出來。 單
35、擊“查看”菜單,則在該菜單的最后一項(xiàng),Visual C+為用戶留出了一個(gè)空位置,用來輸入新的菜單項(xiàng)。 在菜單的空位置上雙擊鼠標(biāo)左鍵,則出現(xiàn)它的屬性對(duì)話框,如圖5.2所示,在標(biāo)題框中輸入“鼠標(biāo)位置(&M ) tCtrl+1 ”,在ID框輸入該菜單項(xiàng)的資源標(biāo)識(shí):ID_VIEW_MOUSE,在提示框中輸入“在 狀態(tài)欄上顯示當(dāng)前鼠標(biāo)位置 n鼠標(biāo)位置”,其中n前一部分的文本是顯示在狀態(tài)欄上的,后一部分是聯(lián) 動(dòng)的工具圖標(biāo)按鈕的提示文本。JD: |ID_VIEW_MOUSE 廠A廿隔符廠0彈岀 廠K選中的 廠G孌灰 M提示;3 £標(biāo)題: l-N非徼活 廠L幫助I 亂標(biāo)位置EMIltCIrH
36、l 旦暫停:|Nore 3匠杭態(tài)欄上並示為前鼠標(biāo)位荀隔標(biāo)位酋圖5.2菜單項(xiàng)屬性設(shè)置4. 添加并設(shè)計(jì)一個(gè)工具圖標(biāo)按鈕 在項(xiàng)目工作區(qū)窗口的ResourceView 頁(yè)面中,雙擊 Toolbar中的IDR_MAINFRAME ,打開工具欄資源。 單擊工具欄最右端的空白按鈕,在資源編輯器的按鈕設(shè)計(jì)窗口中繪制一個(gè)“箭頭”,顏色為黑色,然后將其拖動(dòng)到“幫助”按鈕的前面,并使該按 鈕的前后均有半個(gè)空格,結(jié)果如圖5.3所示。 雙擊剛才設(shè)計(jì)的工具按鈕,在彈出的屬性對(duì)話框中將其 ID_VIEW_MOUSE。5. 菜單命令和工具按鈕的更新 為CMainFrame類添加一個(gè) BOOL型的成員變量 m_blsMouse
37、 ,在CMainFrame類構(gòu)造函數(shù)中將 m_blsMouse 的初值設(shè)為 FALSE。方法:找到 MainFrm.h頭文件,在下圖位置添加相應(yīng)代碼。在ID設(shè)為protected: / control bar embedded membersCToolBar CStatusGar boolmundToolBar; in_un(St3tusBar; m_bIsMouse; 用MFC Classwizard在CMainFrame類中添加工具按鈕1 D列醫(yī)1曰剖盛二JI%1; LLHyh圖5.3 設(shè)計(jì)的工具按鈕MainFrm.cpp相應(yīng)位置設(shè)初值。ChldinFrame:CI1dinFrdn?()n
38、_bl5MDUse=False;ID_VIEW_MOUSE 的 COMMAND 和UP DATE_COMMAND_UI 消息映射函數(shù),并添加下列代碼:void CMainFrame:OnViewMouse()m_blsMouse = !m_blsMouse;void CMainFrame:OnUpdateViewMouse(CCmdUI * pCmdUI)PCmdUI - >SetCheck(m_blsMouse);編譯運(yùn)行并測(cè)試。設(shè)置快捷鍵在項(xiàng)目工作區(qū)窗口的ResourceView頁(yè)面中,雙擊Accelerator中的IDR_ MAINFRAME ,打開快6.捷鍵資源。雙擊加速鍵列表的
39、最下端的空行,彈出如圖 ID_VIEW_MOUSE 作為要聯(lián)動(dòng)的快捷鍵的 ID號(hào), 速鍵的鍵值。5.4所示的 Accel Properities對(duì)話框,選擇菜單項(xiàng)然后單擊“下一鍵”按鈕,并按下 Ctrl+1作為此加ID: |lD_VIEW_MOLISE-32771Ma d ilicrsp Ctrl r Ait r ShiftType r ASCH r vafiKey圖5.4設(shè)置快捷鍵編譯運(yùn)行并測(cè)試。7.添加狀態(tài)欄窗格并顯示鼠標(biāo)當(dāng)前位置打開Mai nF rm.cp p文件,將原先的in dicators數(shù)組修改如下:static UINT indicators=ID_SE PARATOR, ID
40、_SE PARATOR, ID_INDICA ID_INDICA ID INDICA/ status line indicator;TOR_CA PS,TOR_NUM,TOR_SCRL,用MFC ClassWizard在CEx_SDIView 類中映射 WM_MOUSEMOVE (移動(dòng)鼠標(biāo))消息,并在映射函數(shù)中添加下列代碼:void CEx_SDIView:OnMouseMove(UINT nFlags, CP oint point)CMainFrame* pFrame=(CMainFrame*)AfxGetApp() - >m_pMainWnd;/ 獲得主窗口指針CStatusBar*
41、 pStatus=&pFrame- >m_wndStatusBar; / 獲得主窗口中的狀態(tài)欄指針CString str;if (pFrame- >m_blsMouse) str.Format("%d,%d" ,p oint.x, point.y);elsestr.Empty();/ 為空字符if (p Status)pStatus- >SetPaneText(1,str);CView:OnMouseMove(nFlags, point);/格式化文本/更新第二個(gè)窗格的文本將MainFrm.h文件中的受保護(hù)變量m_wndStatusBar變成公共變
42、量。方法:修改 MainFrm.h文件中相應(yīng)位置代碼,如下圖。public: yirtual CMainFraine(); CStatusBar iii_undStatusBar: booln blsMouse;卩rotected:/ control bar embedded membersCToolQarm_wndToolBar;if Generated message map functions在Ex_SDIView.cpp文件的開始處增加下列語(yǔ)句:#include "Ex_SDIView.h"#include "MainFrm.h"編譯運(yùn)行并測(cè)試。
43、8.加下列代碼:實(shí)現(xiàn)快捷菜單用MFC Classwizard在CMainFrame類添加 WM_CONTEXTMENU 消息映射,并在映射函數(shù)添void CMainFrame:OnContextMenu(CWnd * pWnd, CPoint point)/獲得程序菜單指針CMenu* pSysMenu = GetMenu();pSysMenu- >GetSubMenu(2)->Track Popup Menu (TPM _LEFTALIGN|T PM _RIGHTBUTTON, point.x, point.y, this);編譯運(yùn)行并測(cè)試。 寫出實(shí)驗(yàn)報(bào)告9.分析上述運(yùn)行結(jié)果以及思考與練習(xí),寫出實(shí)驗(yàn)報(bào)告。思考與練習(xí)若狀態(tài)欄只有一個(gè)用戶定義的指示器窗格(其ID號(hào)為ID_TEXT_PANE ),應(yīng)如何定義?若當(dāng)用戶在客戶區(qū)雙擊鼠標(biāo)時(shí),在該窗格中顯示“雙擊鼠標(biāo)”字樣,則應(yīng)如何編程?void CAaDlg:O nHScroll(UINT nSBCode, UINT nP os, CScrollBar* pScrollBar)int nID = p ScrollBar->GetDlgCtrlID(); /獲取對(duì)話框中控件 ID 號(hào)if (nID = IDC_SCROLLBAR_RED) /或是滾動(dòng)條產(chǎn)生的水平滾動(dòng)消息switch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版部編歷史七年級(jí)上冊(cè)《第19課 北魏政治和北方民族大交融》聽課評(píng)課記錄
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)1.5《分式方程的應(yīng)用》聽評(píng)課記錄2
- 八年級(jí)數(shù)學(xué)下冊(cè)23.3事件的概率1聽評(píng)課記錄滬教版五四制
- 人教版地理八年級(jí)下冊(cè)6.3《世界上最大的黃土堆積區(qū)-黃土高原》聽課評(píng)課記錄1
- 蘇科版數(shù)學(xué)八年級(jí)上冊(cè)聽評(píng)課記錄《5-1物體位置的確定》
- 用功合同范本(2篇)
- 環(huán)境友好原材料采購(gòu)合同(2篇)
- 人教版五年級(jí)下冊(cè)數(shù)學(xué)《第2單元因數(shù)與倍數(shù) 第1課時(shí) 因數(shù)和倍數(shù)(1)》聽評(píng)課記錄
- 聽評(píng)課記錄2年級(jí)
- 統(tǒng)編教材部編人教版道德與法治九年級(jí)下冊(cè)《3.2 與世界深度互動(dòng)》聽課評(píng)課記錄
- 二零二五年度大型自動(dòng)化設(shè)備買賣合同模板2篇
- 2024版金礦居間合同協(xié)議書
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語(yǔ)試題(含解析無聽力音頻有聽力原文)
- GA/T 2145-2024法庭科學(xué)涉火案件物證檢驗(yàn)實(shí)驗(yàn)室建設(shè)技術(shù)規(guī)范
- 2025內(nèi)蒙古匯能煤化工限公司招聘300人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年中國(guó)融通資產(chǎn)管理集團(tuán)限公司春季招聘(511人)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 寵物護(hù)理行業(yè)客戶回訪制度構(gòu)建
- 電廠檢修管理
- 《SPIN銷售法課件》課件
- 機(jī)動(dòng)車屬性鑒定申請(qǐng)書
- 2024年中考語(yǔ)文試題分類匯編:非連續(xù)性文本閱讀(學(xué)生版)
評(píng)論
0/150
提交評(píng)論