我编写了一个仪表盘的控件,先前是让这个控件从背景到上面的指针全部都刷新,但如果多个控件同时运行时CPU的使用率总是很高,现在我想把仪表盘控件背景的刻度和背景色 只在载入时运行,这样CPU的使用率就比较低了。有谁知道该怎么改??我把所有都写在 OnDraw()里面了
OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code with your own drawing code.
         CDC m_dcBackground;
COLORREF cMiddle,cEdge,cFont;
CMemDC memDC(pdc, &rcBounds);
CMeter mymeter; // 仪表盘的主函数 cEdge = TranslateColor(GetBackColor());
cFont = GetFontColor();
mymeter.SetCFont(cFont);
mymeter.SetCaption(GetText());
mymeter.SetMinValue(GetMinValue());
mymeter.SetMaxValue(GetMaxValue());
mymeter.SetStartAngle(GetStartAngle());
mymeter.SetEndAngle(GetEndAngle());
mymeter.SetTicks(GetTicks());
mymeter.SetSubTicks(GetSubTicks());
mymeter.SetHighDanger(GetHighDanger());
mymeter.SetLowDanger(GetLowDanger());
mymeter.SetCurrentValue(GetValue());
mymeter.SetScaleColor(GetScaleColor()); if (m_value < m_lowDanger || m_value > m_highDanger && i != 0)
{
cMiddle = RGB(128,0,0);
SetTimer(1,1000,NULL);
i = 0;

else
{
i++;
cMiddle = TranslateColor(GetForeColor());
}
mymeter.SetCEdge(cEdge);
mymeter.SetCMiddle(cMiddle); memDC.BitBlt(0, 0, rcBounds.Width(), rcBounds.Height(), 
           &m_dcBackground, 0, 0, SRCCOPY) ; mymeter.DrawMeterBackground(&memDC, &rcBounds);// 背景刻度
mymeter.DrawValue(&memDC);// 仪表盘 标志,精确刻度
mymeter.DrawNeedle(&memDC);// 仪表盘 指针
mymeter.DrawNode(&memDC); // 仪表盘 中心点}