如何获取进度条指针?
我要让2个进度条显示不同文字,网上下了个源代码,是让一个进度条显示文字。我用指针,结果没任何显示。请高手帮帮忙。红色部分是我增加的代码。
void CTextProgressCtrl::OnPaint()
{
if (m_nMin >= m_nMax)
return;
CRect *Rect1=(CRect*)GetDlgItem(IDC_PROGRESS1);
CRect *Rect2=(CRect*)GetDlgItem(IDC_PROGRESS1);
CRect LeftRect, RightRect,ClientRect;
//源代码是GetClientRect(ClientRect);
GetClientRect(Rect1);
GetClientRect(Rect2);
double Fraction = (double)(m_nPos - m_nMin) / ((double)(m_nMax - m_nMin));
CPaintDC PaintDC(this); // device context for painting
CMemDC dc(&PaintDC);
//源代码是LeftRect = RightRect =ClientRect;
LeftRect = RightRect =Rect1=Rect2;
//获取进度的大小
LeftRect.right = LeftRect.left + (int)((LeftRect.right - LeftRect.left)*Fraction);
dc.FillSolidRect(LeftRect, m_colFore);
RightRect.left = LeftRect.right;
dc.FillSolidRect(RightRect, m_colBk);
UpdateData(FALSE);
if (m_bShowText)
{
CString str,str2;
if (m_strText.GetLength())
str = m_strText;
else
str.Format(_T("高度%d米"),_ttoi(ni1));
str2.Format(_T("重量%d吨"),_ttoi(ni2));
dc.SetBkMode(TRANSPARENT);
CRgn rgn1,rgn2;
// 源代码是rgn.CreateRectRgn(ClientRect.left, ClientRect.top,ClientRect.right, ClientRect.bottom);
rgn1.CreateRectRgn(Rect1->left,Rect1->top, Rect1->right, Rect1->bottom);
dc.SelectClipRgn(&rgn1);
//设置颜色
dc.SetTextColor(m_colTextBk);
//显示文字
dc.DrawText(str,Rect1, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
rgn1.DeleteObject();
// 另一个进度条显示文字
rgn2.CreateRectRgn(Rect2->left,Rect2->top, Rect2->right, Rect2->bottom);
dc.SelectClipRgn(&rgn2);
//设置颜色
dc.SetTextColor(m_colTextBk);
//显示文字
dc.DrawText(str,Rect2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
rgn2.DeleteObject();
}
}