VC++定制个性化进度条CProgressCtrl进度条实现
定制个性化的CProgressCtrl
进度条是 MFC 开发中的一项有趣技术。通过 VC++,你可以不止于显示一个进度条,而是定制进度条的背景色、动态进度更新,甚至在工具条上展示百分比。,你可以在OnInitDialog
函数里初始化CProgressCtrl
控件,并通过Create
方法创建进度条。想要个性化一点的话,通过重写OnPaint
消息函数,可以自定义进度条的背景,使用CPaintDC
进行绘制。而显示百分比信息,直接获取进度条当前的进度值,计算百分比,再更新工具条按钮上的文本。这样用户在等待时,可以得到直观的反馈,体验感更好,程序看起来也更有个性。想要实现这个进度条,可以参考下面的代码:
CProgressCtrl* pProgress = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS1);
pProgress->Create(WS_CHILD | WS_VISIBLE, CRect(0, 100, 20), this, IDC_PROGRESS1);
void CMyDlg::OnPaint() {
CPaintDC dc(this);
CBrush* pOldBrush = dc.SelectObject(&m_brushBackground);
dc.FillRect(&ClientRect, &m_brushBackground);
dc.SelectObject(pOldBrush);
CDialogEx::OnPaint();
}
int progressValue = pProgress->GetPos();
int maxValue = pProgress->GetRange32();
double percentage = (double)progressValue / maxValue * 100;
CToolBarCtrl* pToolBar = GetDlgItem(IDC_TOOLBAR1);
CButton* pButton = (CButton*)pToolBar->GetDlgItem(IDC_PERCENTAGE);
pButton->SetWindowText(_T(std::to_wstring(percentage).append(L"%")));
这种定制不仅让界面更美观,也能提升用户的交互体验,挺有意思的对吧?
32.52KB
文件大小:
评论区