Von Rechtecken und Linien



  • Ich habe Folgendes Problem:

    Ich will ein Rechteck zeichnen (bzw. mehrere) die "gefüllt" sind.
    Ich verwende Folgenden Code:

    void CAirScanDlg::DrawDiagramBars(void)
    {
    	int bar = 0;
    	CClientDC dc(this);
    	CPen lpen(PS_SOLID, 1, RGB(240,130,30));
    	dc.SelectObject(&lpen);
    
    //    CDC *pDC= this->GetDC();
    //    CBrush myBrush;
    //    myBrush.CreateSolidBrush(RGB(240,130,30));
    
    	for(int m=0; m<=NCHAN; m++)
    	{
    		//pDC->FillRect(CRect(30+bar,330,40+bar,330-((int)mSignalPuffer[m]*10)),&myBrush);
    
    		dc.Rectangle(30+bar,330,40+bar,330-((int)mSignalPuffer[m]*10));
    		//dc.MoveTo(30+bar, 330);
    		//dc.LineTo(30+bar, 330-((int)mSignalPuffer[m]*10));
    		bar += 10;
    	}
    }
    

    Wie man sieht hab ich es schon CBrush versucht, aber wenn ich das ehem bekomme ich diverse Asserts, wenn ich das Fenster nach dem Zeichnen anklicke.

    Mit den moveTo-LineTo ist das Problem, dass die Linien Runde Ecken haben.

    und mir dc.Recangle alleine ist halt nur der Rand des Rechecks da.

    Was mach ich falsch, bzw. was mach ich nicht?

    Gruß
    Uruk



  • Dann nimm doch einfach FillSolidRect und zeichne deine Rechtecke

    Gruß Matthias


  • Mod

    Für "nicht-runde-Ecken" musst Du PS_ENDCAP_SQUARE verwenden!


Anmelden zum Antworten