mfc變色進(jìn)度條制作

mfc變色進(jìn)度條制作

ID:34724410

大?。?96.03 KB

頁數(shù):8頁

時間:2019-03-10

mfc變色進(jìn)度條制作_第1頁
mfc變色進(jìn)度條制作_第2頁
mfc變色進(jìn)度條制作_第3頁
mfc變色進(jìn)度條制作_第4頁
mfc變色進(jìn)度條制作_第5頁
資源描述:

《mfc變色進(jìn)度條制作》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、VC-MFC制作變色進(jìn)度條一.實驗?zāi)康?熟悉進(jìn)度條的制作原理?防止閃動的緩沖技術(shù)應(yīng)用?Windows消息處理二.添加一個內(nèi)存緩沖類2.1頭文件的定義在創(chuàng)建基于對話框的MFC工程之后,添加一個內(nèi)存緩沖類CMemDC,繼承自CDC。由于MFC新建類向?qū)е械幕愡x項沒有CDC這個基類。所以只有手動在類視圖中添加,并選擇GenericClass。在頭文件中定義兩個操作符:取子域和解引用。MemDC*operator->(){returnthis;}operatorMemDC*(){returnthis;}再添加幾個變量,分別如下:BOOLm_bMemDC;//用于標(biāo)記不是打印DC,僅僅是

2、顯示器CRectm_rect;//定義圖形所顯示的矩形區(qū)域CBitmap*m_pOldBitmap;//存儲用于輸出到設(shè)備上的位圖文件CBitmapm_bitmap;//與設(shè)備匹配的內(nèi)存位圖存儲CDC*m_pDC;//設(shè)備上下文2.2函數(shù)的實現(xiàn)這里我們只需要實現(xiàn)兩個函數(shù),即構(gòu)造函數(shù)和析構(gòu)函數(shù)。代碼如下:ASSERT(pDC!=NULL);m_pDC=pDC;m_pOldBitmap=NULL;m_bMemDC=!pDC->IsPrinting();//判斷不是打印機(jī)if(m_bMemDC){pDC->GetClipBox(&m_rect);//獲取局部剪裁區(qū)域CreateComp

3、atibleDC(pDC);//創(chuàng)建內(nèi)存匹配的設(shè)備上下文m_bitmap.CreateCompatibleBitmap(pDC,m_rect.Width(),m_rect.Height());m_pOldBitmap=SelectObject(&m_bitmap);//選擇對象到設(shè)備SetWindowOrg(m_rect.left,m_rect.top);//設(shè)置窗口的起點坐標(biāo)}else{m_bPrinting=pDC->m_bPrinting;m_hDC=pDC->m_hDC;m_hAttribDC=pDC->m_hAttribDC;}一.進(jìn)度條的編寫3.1頭文件的定義新建一個

4、新類GradientProgress,繼承自CProgressCtrl類。在頭文件中我們添加幾個操作的接口。intStepIt(void);//使進(jìn)度條前進(jìn),按照步長更新到新位置intSetStep(intnStep);//設(shè)置步長intSetPos(intnPos);//設(shè)置進(jìn)度條的邏輯位置voidSetRange(intnLower,intnUpper);添加幾個變量,如下:COLORREFm_clrText,m_clrBk,m_clrStart,m_clrEnd;//文字、背景、左端、右端intm_nLower,m_nUpper,m_nStep,m_nCurrentPosi

5、tion;//進(jìn)度條控制參數(shù)BOOLm_bShowPercent;//是否顯示進(jìn)度信息添加幾個設(shè)置和獲取方法://SetFunctionsvoidSetTextColor(COLORREFcolor){m_clrText=color;}//設(shè)置文字顏色voidSetBkColor(COLORREFcolor){m_clrBk=color;}//背景voidSetStartColor(COLORREFcolor){m_clrStart=color;}//前端voidSetEndColor(COLORREFcolor){m_clrEnd=color;}//后端//GetFunctio

6、nsCOLORREFGetTextColor(void){returnm_clrText;}//獲取文字顏色COLORREFGetBkColor(void){returnm_clrBk;}//背景COLORREFGetStartColor(void){returnm_clrStart;}//前端COLORREFGetEndColor(void){returnm_clrEnd;}//后端定義獲取是否顯示進(jìn)度信息的變量://是否顯示進(jìn)度信息voidShowPercent(BOOLbShowPercent=TRUE){m_bShowPercent=bShowPercent;}定義畫進(jìn)度

7、條函數(shù)DrawGradient()voidDrawGradient(CPaintDC*pDC,//用于響應(yīng)WM_PAINT消息,受OnPaint調(diào)用constRECT&rectClient,//畫對象的區(qū)域constint&nMaxWidth//進(jìn)度條最大寬度);用類向?qū)砑觾蓚€消息處理函數(shù)OnPaint()和OnEraseBkgnd()函數(shù)。3.2函數(shù)實現(xiàn)實現(xiàn)DrawGradient()函數(shù):RECTrectFill;floatfStep;CBrushbrush;MemDCme

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。