mfc变色进度条制作

mfc变色进度条制作

ID:34724410

大小:196.03 KB

页数:8页

时间:2019-03-10

mfc变色进度条制作_第1页
mfc变色进度条制作_第2页
mfc变色进度条制作_第3页
mfc变色进度条制作_第4页
mfc变色进度条制作_第5页
资源描述:

《mfc变色进度条制作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、VC-MFC制作变色进度条一.实验目的Ø熟悉进度条的制作原理Ø防止闪动的缓冲技术应用ØWindows消息处理二.添加一个内存缓冲类2.1头文件的定义在创建基于对话框的MFC工程之后,添加一个内存缓冲类CMemDC,继承自CDC。由于MFC新建类向导中的基类选项没有CDC这个基类。所以只有手动在类视图中添加,并选择GenericClass。在头文件中定义两个操作符:取子域和解引用。MemDC*operator->(){returnthis;}operatorMemDC*(){returnthis;}再添加几个变量,分别如下:BOOLm_bMemDC;//用于标记不是打印DC,仅仅是

2、显示器CRectm_rect;//定义图形所显示的矩形区域CBitmap*m_pOldBitmap;//存储用于输出到设备上的位图文件CBitmapm_bitmap;//与设备匹配的内存位图存储CDC*m_pDC;//设备上下文2.2函数的实现这里我们只需要实现两个函数,即构造函数和析构函数。代码如下:ASSERT(pDC!=NULL);m_pDC=pDC;m_pOldBitmap=NULL;m_bMemDC=!pDC->IsPrinting();//判断不是打印机if(m_bMemDC){pDC->GetClipBox(&m_rect);//获取局部剪裁区域CreateComp

3、atibleDC(pDC);//创建内存匹配的设备上下文m_bitmap.CreateCompatibleBitmap(pDC,m_rect.Width(),m_rect.Height());m_pOldBitmap=SelectObject(&m_bitmap);//选择对象到设备SetWindowOrg(m_rect.left,m_rect.top);//设置窗口的起点坐标}else{m_bPrinting=pDC->m_bPrinting;m_hDC=pDC->m_hDC;m_hAttribDC=pDC->m_hAttribDC;}一.进度条的编写3.1头文件的定义新建一个

4、新类GradientProgress,继承自CProgressCtrl类。在头文件中我们添加几个操作的接口。intStepIt(void);//使进度条前进,按照步长更新到新位置intSetStep(intnStep);//设置步长intSetPos(intnPos);//设置进度条的逻辑位置voidSetRange(intnLower,intnUpper);添加几个变量,如下:COLORREFm_clrText,m_clrBk,m_clrStart,m_clrEnd;//文字、背景、左端、右端intm_nLower,m_nUpper,m_nStep,m_nCurrentPosi

5、tion;//进度条控制参数BOOLm_bShowPercent;//是否显示进度信息添加几个设置和获取方法://SetFunctionsvoidSetTextColor(COLORREFcolor){m_clrText=color;}//设置文字颜色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;}//后端定义获取是否显示进度信息的变量://是否显示进度信息voidShowPercent(BOOLbShowPercent=TRUE){m_bShowPercent=bShowPercent;}定义画进度

7、条函数DrawGradient()voidDrawGradient(CPaintDC*pDC,//用于响应WM_PAINT消息,受OnPaint调用constRECT&rectClient,//画对象的区域constint&nMaxWidth//进度条最大宽度);用类向导添加两个消息处理函数OnPaint()和OnEraseBkgnd()函数。3.2函数实现实现DrawGradient()函数:RECTrectFill;floatfStep;CBrushbrush;MemDCme

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。