Stiffarbe ändern



  • Hi
    Ich habe eine CProgressCtrl überschrieben damit mein Progressbalken ein anderes design bekommt. Und zwar einen schönen übergang. Da ich jetzt aber die Stiftfarbe immer ändere bekomme ich laufzeitprobleme.

    Hier ist mal der Code:

    void MyProgressCtrl::SetPos(int nPos)
    {
    	CClientDC   dc(this);
    	CRect rect;
    	GetClientRect(&rect);
    	float Step = (float)rect.right / (m_iRangeRight - m_iRangeLeft);
    	CPoint Start,End;
    	int Color = 255;
    	float ColorStep;
    	int PixelCount = Step * nPos;
    
    	ColorStep = (float) 255 / PixelCount;
    
    	for (int i = rect.left ; i < (Step * nPos); i++)
    	{
    		Color = 255 - ( i * ColorStep);
    	// Diese 2 zeilen sind zu langsam
    		CPen pen(PS_SOLID,1,RGB(Color,0,0));  
    		dc.SelectObject(&pen);
    	//---------------------------------------
    
    		Start.x=i;
    		Start.y=rect.top;
    		End.x=i;
    		End.y=rect.bottom;
    		dc.MoveTo(Start);
    		dc.LineTo(End);
    	}
    	CBrush brush(m_cBkColor);
    	dc.SelectObject(&brush);	
    	rect.left=i;
    	dc.Rectangle(rect);
    }
    

    Jetzt habe ich versucht 255 verschiedene Stifte schon vorab in Create zu erzeugen. Aber wenn ich das mache wird der Progressbalken in dem Haupfenster gezeichnet und zwar links oben.
    Kann mir jemand sagen wie man das von der laufzeit am besten lösen könnte?



  • sven1978 schrieb:

    Jetzt habe ich versucht 255 verschiedene Stifte schon vorab in Create zu erzeugen. Aber wenn ich das mache wird der Progressbalken in dem Haupfenster gezeichnet und zwar links oben.
    Kann mir jemand sagen wie man das von der laufzeit am besten lösen könnte?

    Dann hast du irgendwas falsch gemacht ... Das wäre jetzt acuh mein Vorschlag gewesen. Zeig doch mal den Code.


Anmelden zum Antworten