MFC下做一个能显示文字的进度条功能(VS2015)
1.在进度条上显示百分比,也就是在Progress Bar Control控件上显示,(没有找到很好的方法)
2.就想到做了一个Edit的控件,然后在外面一层画一个矩形的填充控件,并且显示透明的文字。
源码如下:
CClientDC dc(this);
CRect rect(m_rcDiskSpaceValueExist);//Edit控件的坐标
float fPercent = (float)lFreeSpace / (float)lTotalSpace;
int nPercent =(int)( fPercent * 100);
dc.FillSolidRect(rect.left, rect.top, rect.Width() * nPercent / 100, rect.Height(), RGB(0, 255, 0));//以什么颜色填充多大
CString str;
str.Format(_T("%dG / %d"), lFreeSpace, lTotalSpace);
str.Append(_T("G"));
dc.SelectObject(&m_txtFont);
dc.SetBkMode(TRANSPARENT);
dc.SetTextColor(RGB(100, 0, 0));
dc.DrawText(str, rect, DT_LEFT | DT_SINGLELINE | DT_BOTTOM);
dc.SetTextAlign(m_nTxtFontSize);
3.有一点要注意的是,界面的刷新只会去刷新CEdit控件,不刷新上面的代码部分。暂时使用的是计时器刷新,接下来的优化会在控件的类里面用GDI+去绘画。