VC++實驗六-MFC-控件編程實驗_第1頁
VC++實驗六-MFC-控件編程實驗_第2頁
VC++實驗六-MFC-控件編程實驗_第3頁
VC++實驗六-MFC-控件編程實驗_第4頁
VC++實驗六-MFC-控件編程實驗_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗六MFC控件編程實驗實驗?zāi)康氖煜isualStudio開發(fā)環(huán)境;〔2〕掌握類向?qū)У氖褂梅椒?,熟練使用類向?qū)нM(jìn)行消息映射,添加類的數(shù)據(jù)成員;〔3〕掌握MFC環(huán)境下標(biāo)準(zhǔn)控件的使用方法。二、實驗內(nèi)容創(chuàng)立如下圖的基于對話框的應(yīng)用程序,在圖形顯示區(qū)繪制一個矩形并用單色畫刷填充矩形內(nèi)部。通過滾動條控件設(shè)置填充顏色,并在編輯框中顯示顏色的RGB值,過單項選擇按鈕可以設(shè)置矩形的邊框線型,“顯示圖形〞復(fù)選框可以控制是否顯示矩形。設(shè)置完成后,單擊“顯示〞按鈕在“圖形顯示區(qū)〞顯示新的繪圖效果。單擊“退出〞按鈕退出程序。實驗結(jié)果列表說明各個控件的屬性設(shè)置,列出控件功能的實現(xiàn)代碼??丶膶傩栽O(shè)置:控件屬性設(shè)置CaptionIDGroup“顯示〞下壓式按鈕顯示IDC_SHOWFalse“退出〞下壓式按鈕退出IDC_QUITFalse“顯示圖形〞復(fù)選按鈕顯示圖形IDC_SHOWPICTUREFalse“實線〞單項選擇按鈕實線IDC_SOLIDTrue“虛線〞單項選擇按鈕虛線IDC_DASHTrue“點劃線〞單項選擇按鈕點劃線IDC_DASHDOTTrue“雙點劃線〞單項選擇按鈕雙點劃線IDC_DASHDOTDOTTrue“紅色〞滾動條IDC_REDFalse“綠色〞滾動條IDC_GREENFalse“藍(lán)色〞滾動條IDC_BLUEFalseStaticText紅色I(xiàn)DC_STATICTrueStaticText綠色I(xiàn)DC_STATICTrueStaticText藍(lán)色I(xiàn)DC_STATICTrue編輯框IDC_RGBFalse控件功能的實現(xiàn)代碼:1.“顯示〞下壓式按鈕://按下“顯示〞按鈕時,繪制圖形voidCDemoDlg::OnPaint(){CPaintDCdc(this);CPenPen2,*pOldPen;CBrushbrush;UpdateData(TRUE);//根據(jù)m_nLineStyle的值判斷用何種線形繪制圖形,//并獲取滾動條的位置,創(chuàng)立畫筆、畫刷switch(m_nLineStyle) {case0:Pen2.CreatePen(PS_SOLID,3,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case1:Pen2.CreatePen(PS_DASH,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case2:Pen2.CreatePen(PS_DASHDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case3:Pen2.CreatePen(PS_DASHDOTDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break; }pOldPen=dc.SelectObject(&Pen2);dc.SelectObject(&brush);//判斷m_nShow是否為真,假設(shè)為真繪制圖形if(m_nShow==TRUE) {dc.Rectangle(80,50,350,160); }dc.SelectObject(pOldPen);}2.“退出〞下壓式按鈕://按下“退出〞按鈕時,退出程序voidCDemoDlg::OnStop(){ //TODO:AddyourcontrolnotificationhandlercodehereCDialog::EndDialog(IDC_QUIT);}3.“顯示圖形〞復(fù)選按鈕://定義布爾變量,判斷是否顯示圖形,用于數(shù)據(jù)交換BOOLm_nShow;//判斷m_nShow是否為真,假設(shè)為真繪制圖形if(m_nShow==TRUE) {dc.Rectangle(80,50,350,160); }4.線形設(shè)置://定義一個整形變量,有于判斷有何種線形繪制圖形intm_nLineStyle;//根據(jù)m_nLineStyle的值判斷用何種線形繪制圖形,//并獲取滾動條的位置,創(chuàng)立畫筆、畫刷switch(m_nLineStyle) {case0:Pen2.CreatePen(PS_SOLID,3,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case1:Pen2.CreatePen(PS_DASH,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case2:Pen2.CreatePen(PS_DASHDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case3:Pen2.CreatePen(PS_DASHDOTDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break; }pOldPen=dc.SelectObject(&Pen2);dc.SelectObject(&brush);5.滾動條://定義CScrollBar類型的變量,用于調(diào)用GetScrollPos()獲取滑動塊的位置CScrollBarm_Red;CScrollBarm_Green;CScrollBarm_Blue;//設(shè)置滾動條的最大值最小值m_Red.SetScrollRange(0,255);m_Green.SetScrollRange(0,255);m_Blue.SetScrollRange(0,255);//設(shè)置滾動條滑塊的起始位置m_Red.SetScrollPos(100);m_Green.SetScrollPos(100);m_Blue.SetScrollPos(100);//設(shè)置滾動條點左右箭頭時滾動值和點左右空白地方的滾動值voidCDemoDlg::OnHScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar){ //TODO:Addyourmessagehandlercodehereand/orcalldefaultswitch(nSBCode) {caseSB_THUMBTRACK:pScrollBar->SetScrollPos(nPos);break;caseSB_LINELEFT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()-1);break;caseSB_LINERIGHT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()+1);break;caseSB_PAGELEFT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()-10);break;caseSB_PAGERIGHT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()+10);break; }m_szRGB.Format(_T("RGB(%d,%d,%d)"),m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() );UpdateData(FALSE);CDialog::OnHScroll(nSBCode,nPos,pScrollBar);}6.編輯框://定義一個字符串型變量,用于顯示滾動條的位置CStringm_szRGB;//顯示滾動條的初始位置m_szRGB=_T("RGB(100,100,100)");//顯示滾動條滑動時的RGB的值m_szRGB.Format(_T("RGB(%d,%d,%d)"),m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() );實驗結(jié)果:在資源視圖的IDD_DEMO_DIALOG中直接添加按鈕和編輯框,如下列圖;調(diào)試運行程序:改變線形和滾動條的位置,繪制不同線形,不同背景刷的圖形:(2)總結(jié)類向?qū)У墓δ芎褪褂梅椒?。功能:類向?qū)?,又稱ClassWizard,它提供了一個管理類的一個快捷的界面和快捷的方式,使我們能方便的管理成員變量、成員函數(shù)、消息映射、命令等??梢詮闹兄苯犹砑酉⒂成洌瑒?chuàng)立和添加成員變量等。使用方法:在解決方案資源管理器中,選中工程名稱,右擊鼠標(biāo),選擇類向?qū)В涂蛇M(jìn)入類向?qū)Ы缑?。在此,可以直接添加消息映射,然后選擇添加處理程序,編輯代碼就可直接添加消息映射和需要處理消息的函數(shù)。也可在此直接創(chuàng)立成員變量,添加命令等方法類似。(3)總結(jié)實驗的心得體會,實驗中遇到的困難以及解

溫馨提示

  • 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

提交評論