版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗常用控件(1)實驗目的和要求所示。(1) 創(chuàng)建一個默認的對話框應用程序Ex_Ctrls,如圖2.1(2) 設計一個如圖2.2所示的“課程信息”對話框。課程號:21CI52E1課程容秫:軟件工程 所屈專業(yè):機械工程及K自動牝:專瞠:3:60:2 0-漏加I吐需崽退岀I課提號:|Z1D5£2I課程名?。核怪疲很涰ば?機械工程及Eg動化J1專6創(chuàng)刪孰:P慄吋數(shù);|60h M:j|取消1圖2.2 “課程信息”對話框圖2.1 Ex Ctrls對話框創(chuàng)建一個默認的對話框應用程序 選擇“文件” 在工程框中輸入 Ex_Ctrls,并將工程文件夾定位到“ 單擊“確定”按鈕,Ex_Ctrls7“
2、新建”菜單,在彈出的“新建”對話框中選擇“工程”頁面,選擇MFC AppWizard Visual C+程序實驗實驗2”。在出現(xiàn)的Step 1對話框中選擇“基本對話(框)”應用程序類型,單擊“完成”按鈕。 在對話框編輯器中, 改為“使用控件”。 調整對話框的大小,單擊對話框工具欄上的切換網格按鈕顯示對話框網格,將對話框標題刪除對話框中間的“TODO:在這里設置對話控制?!膘o態(tài)文本控件和“確,并移至對話框的下方。向對話框中添加組框(Group)控件,標題設為“添加”,然后調整其大小和位置。添加一個按鈕,標題設為“課程信息”,ID設為IDC_BUTTON_COURSE。添加一個列表框,取其默認ID
3、號,去掉Sort風格屬性。添加并設計“課程信息”對話框按Ctrl+R快捷鍵,彈出“插入資源”對話框,在資源類型列表中選擇定”按鈕控件,將“取消”按鈕標題改為“退出”3. 鈕。Dialog,單擊“新建”按(3)實現(xiàn)功能:單擊圖2.1中的“課程信息”按鈕,彈出“學生基本信息”對話框,單擊“添加” 按鈕,對話框內容顯示在圖2.1中的列表框中。實驗準備和說明(1) 具備知識:靜態(tài)控件、按鈕、編輯框、旋轉按鈕控件、列表框和組合框控件。(2) 創(chuàng)建本次實驗工作文件夾“Visual C+程序實驗實驗2”。實驗內容和步驟1. 啟動 Visual C+ 6.0打開計算機,啟動 Visual C+ 6.0系統(tǒng)。2
4、. (exe),,字體設為“宋體,9號”。將OK和Can cel按鈕的標題改為“添加”和“取消”。打開對話框網格,參看圖2.2的控件布局,為對話框添加如表2.1所示的一些控件。 將該對話框資源的ID設為IDD_COURSE,標題設為“課程信息”表2.1課程信息對話框添加的控件添加的控件ID號標題其他屬性編輯框(課程號)IDC_EDIT_COURSENO默認編輯框(課程名稱)IDC_EDIT_COURSENAME默認組合框(所屬專業(yè))IDC_COMBO_S PECIAL默認組合框(課程類型)IDC_COMBO_T YPE默認編輯框(開課學期)IDC_EDIT_ OPEN默認旋轉按鈕IDC_S P
5、IN1Auto buddy、Set buddy integer、Right對齊,其余默認編輯框(課時數(shù))IDC_EDIT_COURSEHOURS默認編輯框(學分)IDC_EDIT_CREDIT默認右擊添加的課程類型的組合框控件,從彈出的快捷菜單中選擇“屬性”命令,將其屬性對話框 切換到Data頁面,直接輸入內容,輸入一行后按Ctrl+回車鍵添加另一行。同樣對另一個組合框控件Combo Box JSH些覽常規(guī)藪奩T祁式擴也進行修改。結果如圖2.3所示。CcBbo )DX rrcpertiez審豐 General ! Data I Styles I Exlerded StylESNft人 列裹框
6、項:±1龜入列 表框項 目:Sglli圖2.3課程類型組合框內容輸入IDD COURSE創(chuàng)建一個對話框按Ctrl+W快捷鍵或雙擊對話框資源模板的空白處,為CCourseDIg。打開 ClassWizard的Member Variables頁面,看 Class name是否是 CCourseDlg,選中所需的控 件ID號,雙擊鼠標。依次為表2.2控件增加成員變量。表2.2 控件變量控件ID號變量類別變量類型變量名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 ="機械工程及其自動化"/有改動 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("課程號不能為空!");m_strName.TrimLeft();if (m_strName.IsE mp ty()MessageBox("課程名稱不能為空!"); CDialog:OnOK();return;return;5.m_List, 列
10、代碼:添加CEx_CtrlsDlg程序代碼按Ctrl+W 快捷鍵,打開 MFC ClassWizard對話框,為列表框控件類型為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);課程號: 課程名稱: 所屬專業(yè): 課程類型:void CEx_CtrlsDlg:OnButtonCourse()CC
11、ourseDlg dlg;if (IDOK != dlg.DoModal() return;/清除列表框原來的顯示內容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("開課學期: m_List.AddString( str ); str.Format("課 時 數(shù): m_List.Ad
12、dString( str ); str.Format("學 分: 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" 在“工程”一“設置”常規(guī)選項里,選擇使用MFC作為靜態(tài)鏈接庫 編譯運行并測試。6.寫出實驗報告 分析上述
13、運行結果以及思考與練習,寫出實驗報告。思考與練習(1 )為CCourseDlg類添加一個公有型 CString成員變量 m_strOKText,當通過 CCourseDlg類對象 將m_strOKText設為“修改”,CCourseDlg對話框中的“添加”按鈕標題變成“修改”,試編程實現(xiàn)。(2)由于每學期的一門課程學分一般不超過6個學分,因此若將學分編輯框改為組合框,應如何修改和編程?實驗常用控件(2)實驗目的和要求(1) 設計一個如圖3.1所示的“學生基本信息”對話框。(2) 在實驗2的基礎上,實現(xiàn)功能:在圖2.1中的“課程信息”按鈕下方添加一個“學生基本信息”按鈕,單擊該按鈕,彈出“學生基
14、本信息”對話框,單擊“添加”按鈕,學生基本信息顯示在列表框中。3個分量:(3) 在CEx_CtrlsDlg對話框中添加一個滾動條和兩個滑動條來調整對話框的背景顏色的R (紅色分量)、G (綠色分量)和 B (藍色分量),結果如圖3.2所示。名;號:剔:出生日閒:|a22(o二pN學號:21010501性別臨出生年月;冊叫1-(1 孵專業(yè):鵬工程履目機I虹I I“I圖3.1 “學生基本信息”對話框圖3.2設置對話框背景顏色實驗準備和說明(1) 具備知識:滾動條、進展條、滑動條、時間和日歷控件。(2) 創(chuàng)建本次實驗工作文件夾“Visual C+程序實驗實驗3”。實驗內容和步驟1. 在實驗3的工作文
15、件夾中復制 Ex_Ctrls文件夾 將本書實驗2中的Ex_Ctrls文件夾復制到實驗 3的工作文件夾中。2. 啟動 Visual C+ 6.0 啟動 Visual C+ 6.0 系統(tǒng)。3. 創(chuàng)建并添加“學生基本信息”對話框實驗實驗3Ex_Ctrls ”文件夾中“學生成績輸入”,將對話框字體 選擇“文件”7“打開工作區(qū)”菜單,將“'Visual C+程序的Ex_Ctrls項目打開。 添加一個新的對話框資源,將ID號改為IDD_INPUT ,標題為改為“宋體,9號”。將OK和Cancel按鈕標題改為“確定”和“取消” 調整對話框的大小,將“確定”和“取消”按鈕移至對話框的下方,然后顯示對話
16、框網格。 參看圖3.1,向對話框添加如表 3.1所示的控件。添加兩個“單選按鈕”廠舅int型并在第一個按鈕“男”的屬性 一常規(guī)選項勾選“組”,并對第一個按鈕增加成員變量 m bMale。第二個按鈕不用勾選和增加。表3.1學生基本信息對話框添加的控件添加的控件ID號標題其他屬性編輯框IDC_EDIT_NAME默認編輯框IDC_EDIT_NO默認編輯框IDC_EDIT_S1默認旋轉按鈕控件IDC_S PIN _S1Auto buddy、Right 對齊編輯框IDC_EDIT_S2默認旋轉按鈕控件IDC_S PIN _S2Auto buddy、Set buddy integer、Right 對齊編輯
17、框IDC_EDIT_S3默認旋轉按鈕控件IDC_S PIN _S3Auto budOdy、Set buddy integer、Right 對齊編輯框IDC SPECIAL默認 雙擊對話框模板空白處,為該對話框模板創(chuàng)建一個對話框類CInputDIg。CInputDIg, 在MFC Classwizard的Member Variables頁面中,確定 Class name中是否已選擇了選中所需的控件ID號,雙擊鼠標或單擊Add Variables按鈕。依次為表 3.2控件增加成員變量。表3.2控件變量控件ID號變量類別變量類型變量名范圍和大小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頁面中,為 CInputDlg 添加 WM_INITDIALOG 消息映射, 并添加下列代碼:BOOL CIn pu tDlg:OnlnitDialog() CDialog:OnlnitDialog();m_spinScore1.SetRange( 0, 100 );/ 設置旋轉按鈕控件范圍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);/將控件的內容保存到變量中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);/將變量的內容顯示在控件中*p Result = 0;打開IDD_EX_CTRLS_DIALOG對話框資源,在“課程信息”按鈕下方添加一個“學生基本信息”按鈕,并將 ID號設為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;學號:m_List.AddString("性別:CString str;修改了接下來這三條語句str.Format("出生日期:d-%d-%d", dlg.m_fScore1,dlg.m_fScore2,dlg.m_fScore3); m_List.AddString( str );m_List.AddString("所學專業(yè):"+dlg.m_strSpecial);在Ex_CtrlsDlg.cpp文件的前面添加 CStuInfoDIg類的頭文件包含:#include "CourseDIg.h"#include &quo
24、t;In putDIg.h"編譯運行并測試。結果如圖3.3所示。/在“工程”一“設置”常規(guī)選項里,選擇使用 MFC作為靜態(tài)鏈接庫姓名:李明學號:ilOlQSOL性Sd:男蛍生年月:906-01-01鞘宇等業(yè):機械工程茂其目動化退岀 I4.改變對話框背景顏色 將項目工作區(qū)窗口切換到 打開對話框網格,參看圖圖3.3學生基本信息添加后的結果ResourceView 頁面,打開 IDD_EX_CTRLS_DIALOG對話框資源。3.2的控件布局,為對話框添加如表3.3所示的一些控件。表3.3添加的控件添加的控件ID號標題其他屬性垂直滾動條 滑動條(綠色) 滑動條(藍色)IDC_SCROLLB
25、AR_REDIDC_SLIDER_GREENIDC SLIDER BLUE默認方位為Vertical,其他默認 方位為Vertical,其他默認用MFC Classwizard為表3.4控件添加成員變量。表3.4控件變量控件ID號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類添加兩個成員變量,一個是int型m_nRed,用來設置顏色 R、G、B中的紅色分量,另一個是畫刷CBrush類對象m_Brush,用來設置對話框背景所需要的畫刷。方法:在Ex_CtrlsDlg.h頭文件內找到相應位置按下圖添加。/ 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/設置顏色調節(jié)范圍初始化對話框背景顏色用 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:/獲取對話框中控件ID號或是滾動條產生的水平滾動消息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:/單擊滾動條向上箭頭/單擊滾動條向下箭頭if (m_nRed<0) m_nRed = 0;if (m_nRed
30、>255) m_nRed = 255; m_scrollRed.SetSc IPo s(m_nRed);Invalidate();/使對話框無效,強迫系統(tǒng)重繪對話框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;/使畫刷和對象分離/創(chuàng)建顏色畫刷設置背景顏色返回畫刷句柄,以便系統(tǒng)使此畫刷繪制對話框 編譯運行并測試。5.寫出實驗報告分析上述運行結果以及思考與練習,寫出實驗報告。思考與練習(1) 若將控制綠色和藍色顏色分量的滑動條全部換成滾動條
32、,則代碼應如何修改?(2) 若將CEx_CtrlsDlg對話框中的列表框換成靜態(tài)文本,并用于顯示信息,則應如何實現(xiàn)?實驗菜單、工具欄和狀態(tài)欄實驗目的和內容(1) 創(chuàng)建一個單文檔應用程序Ex_SDI。在“查看”菜單下添加一個子菜單“鼠標位置” ,ID為ID_VIEW_MOUSE,當選擇該菜單命令后,鼠標當前的位置顯示到狀態(tài)欄上,同時該菜單項 呈選中狀態(tài)。再次選擇該菜單命令, 狀態(tài)欄不再顯示當前鼠標位置,同時該菜單項的選中狀態(tài)被去除。(2) 在工具欄上添加并設計一個工具按鈕圖標,使該按鈕和添加一個快捷鍵Ctrl+M和該菜單命令聯(lián)動。(3) 在窗口客戶區(qū)中右擊鼠標,彈出快捷菜單,顯示主菜單“查看”中
33、的菜單命令。結果如圖 所示。ID_VIEW_MOUSE菜單命令聯(lián)動,并5.153 無耘 e - aH m 窓 cjy工具欄CD屮弒戀欄國屮K標位査CM3 Clri+l199r110圖5.1 Ex SDI運行結果實驗準備和說明(1 )具備知識:(2)創(chuàng)建本次實驗工作文件夾“實驗內容和步驟1. 啟動 Visual C+ 6.0打開計算機,啟動 Visual C+ 6.0系統(tǒng)。2. 用MFC AppWizard ( exe)創(chuàng)建一個默認的單文檔應用程序Ex_SDI選擇“文件”7“新建”菜單,在彈出的“新建”對話框中選擇“工程”標簽,在應用程序項菜單、工具條和狀態(tài)欄。Visual C+程序實驗實驗5”
34、。目類型列表框中選擇 MFC AppWizard ( exe)的項目類型,將工程文件夾定位到“Visual C+程序實驗實驗5”,并在工程框中輸入項目名Ex_SDI。Single Document, SDI)應用程序類 單擊“確定”按鈕,從出現(xiàn)的對話框中,選擇單個文檔( 型。 保留其他的默認選項,單擊“完成”按鈕出現(xiàn)一個對話框,顯示出用戶在步驟中作出的選擇, 單擊“確定”按鈕,系統(tǒng)開始創(chuàng)建。3.添加菜單 在項目工作區(qū)窗口中選擇ResourceView頁面,雙擊資源 Menu項中的IDR_ MAINFRAME ,則菜單編輯器窗口出現(xiàn)在主界面的右邊,相應的Ex_SDI項目的菜單資源被顯示出來。 單
35、擊“查看”菜單,則在該菜單的最后一項,Visual C+為用戶留出了一個空位置,用來輸入新的菜單項。 在菜單的空位置上雙擊鼠標左鍵,則出現(xiàn)它的屬性對話框,如圖5.2所示,在標題框中輸入“鼠標位置(&M ) tCtrl+1 ”,在ID框輸入該菜單項的資源標識:ID_VIEW_MOUSE,在提示框中輸入“在 狀態(tài)欄上顯示當前鼠標位置 n鼠標位置”,其中n前一部分的文本是顯示在狀態(tài)欄上的,后一部分是聯(lián) 動的工具圖標按鈕的提示文本。JD: |ID_VIEW_MOUSE 廠A廿隔符廠0彈岀 廠K選中的 廠G孌灰 M提示;3 £標題: l-N非徼活 廠L幫助I 亂標位置EMIltCIrH
36、l 旦暫停:|Nore 3匠杭態(tài)欄上並示為前鼠標位荀隔標位酋圖5.2菜單項屬性設置4. 添加并設計一個工具圖標按鈕 在項目工作區(qū)窗口的ResourceView 頁面中,雙擊 Toolbar中的IDR_MAINFRAME ,打開工具欄資源。 單擊工具欄最右端的空白按鈕,在資源編輯器的按鈕設計窗口中繪制一個“箭頭”,顏色為黑色,然后將其拖動到“幫助”按鈕的前面,并使該按 鈕的前后均有半個空格,結果如圖5.3所示。 雙擊剛才設計的工具按鈕,在彈出的屬性對話框中將其 ID_VIEW_MOUSE。5. 菜單命令和工具按鈕的更新 為CMainFrame類添加一個 BOOL型的成員變量 m_blsMouse
37、 ,在CMainFrame類構造函數(shù)中將 m_blsMouse 的初值設為 FALSE。方法:找到 MainFrm.h頭文件,在下圖位置添加相應代碼。在ID設為protected: / control bar embedded membersCToolBar CStatusGar boolmundToolBar; in_un(St3tusBar; m_bIsMouse; 用MFC Classwizard在CMainFrame類中添加工具按鈕1 D列醫(yī)1曰剖盛二JI%1; LLHyh圖5.3 設計的工具按鈕MainFrm.cpp相應位置設初值。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);編譯運行并測試。設置快捷鍵在項目工作區(qū)窗口的ResourceView頁面中,雙擊Accelerator中的IDR_ MAINFRAME ,打開快6.捷鍵資源。雙擊加速鍵列表的
39、最下端的空行,彈出如圖 ID_VIEW_MOUSE 作為要聯(lián)動的快捷鍵的 ID號, 速鍵的鍵值。5.4所示的 Accel Properities對話框,選擇菜單項然后單擊“下一鍵”按鈕,并按下 Ctrl+1作為此加ID: |lD_VIEW_MOLISE-32771Ma d ilicrsp Ctrl r Ait r ShiftType r ASCH r vafiKey圖5.4設置快捷鍵編譯運行并測試。7.添加狀態(tài)欄窗格并顯示鼠標當前位置打開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 (移動鼠標)消息,并在映射函數(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);/格式化文本/更新第二個窗格的文本將MainFrm.h文件中的受保護變量m_wndStatusBar變成公共變
42、量。方法:修改 MainFrm.h文件中相應位置代碼,如下圖。public: yirtual CMainFraine(); CStatusBar iii_undStatusBar: booln blsMouse;卩rotected:/ control bar embedded membersCToolQarm_wndToolBar;if Generated message map functions在Ex_SDIView.cpp文件的開始處增加下列語句:#include "Ex_SDIView.h"#include "MainFrm.h"編譯運行并測試。
43、8.加下列代碼:實現(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);編譯運行并測試。 寫出實驗報告9.分析上述運行結果以及思考與練習,寫出實驗報告。思考與練習若狀態(tài)欄只有一個用戶定義的指示器窗格(其ID號為ID_TEXT_PANE ),應如何定義?若當用戶在客戶區(qū)雙擊鼠標時,在該窗格中顯示“雙擊鼠標”字樣,則應如何編程?void CAaDlg:O nHScroll(UINT nSBCode, UINT nP os, CScrollBar* pScrollBar)int nID = p ScrollBar->GetDlgCtrlID(); /獲取對話框中控件 ID 號if (nID = IDC_SCROLLBAR_RED) /或是滾動條產生的水平滾動消息switch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農村無害化廁所改造與農村人居環(huán)境改善合同
- 2025年度農產品電商大數(shù)據(jù)分析合作合同3篇
- 二零二五年度中小企業(yè)出口退稅貸款合同模板2篇
- 二零二五年度文化活動兼職志愿者服務合同3篇
- 二零二五年度婚前財產界定與婚后管理合同3篇
- 二零二五年度新能源汽車采購合同模板2篇
- 2025農村宅基地房屋出售合同(含環(huán)保改造承諾)
- 二零二五年度特色養(yǎng)殖基地場地租賃合同3篇
- 《壽司店策劃》課件
- 《種苗檔案建設》課件
- 湖北省襄陽市襄城區(qū)2023-2024學年七年級上學期期末學業(yè)水平診斷英語試題
- 學??蒲刑幪庨L述職報告范文
- 護理文書書寫規(guī)范
- 2023-2024學年安徽省阜陽市臨泉縣八年級(上)期末數(shù)學試卷(含解析)
- 2016-2023年江蘇醫(yī)藥職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 部編版五年級語文上冊期末 小古文閱讀 試卷附答案
- 工業(yè)互聯(lián)網平臺建設方案
- 江蘇南京鼓樓區(qū)2023-2024九年級上學期期末語文試卷及答案
- 醫(yī)療試劑服務方案
- 精準醫(yī)療的商業(yè)模式
- 2023-2024學年四川省成都市金牛區(qū)八年級(上)期末數(shù)學試卷
評論
0/150
提交評論