ChartDiagramm und Textout



  • void ChartDlg::DrawDisplay(CDC *pDC)
    {
    	//------------------------------------------------------------------+
    	// Original Pen und Font sollten nicht verloren werden.				!
    	//------------------------------------------------------------------+
    	CPen	*oldPen;
    //	CFont	*oldFont;
    	int totaltime=m_ptr->test;
    	int totalminute=m_ptr->diff_time.GetMinutes();
    	//------------------------------------------------------------------+
    	//	Pens															!
    	//------------------------------------------------------------------+
    	CPen PenLin1(PS_SOLID,1,RGB(255,0,0));			// rot
    
    	//------------------------------------------------------------------+
    	//	Fonts															!
    	//------------------------------------------------------------------+
    //	CFont Font1;
    
    //	Font1.CreateFont(20, 0, 0, 0, FW_BOLD, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, 
    //							CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "Arial");
    
    	//------------------------------------------------------------------+
    	//	Zuerst Pen wählen, damit der originalPen gespeichert wird		!
    	//------------------------------------------------------------------+
    
    	oldPen		= pDC->SelectObject(&PenLin1);
    //	oldFont		= (CFont*)pDC->SelectObject(&Font1);
    	CRect rect(90,90,300,300);                //Zeichenfläche
        CPoint center(static_cast<int>((rect.right-rect.left)/2+rect.left), static_cast<int>((rect.bottom-rect.top)/2+rect.top));
        int radius = (rect.right-rect.left)/2;
        int tSchlaf =4 ,
            tWach    = 10;
        int tGes = tSchlaf + tWach;
    
        COLORREF	r = RGB(255,0,0),
    			    g = RGB(0,255,0),
    				b = RGB(0,0,255),
    				sw= RGB(0,0,0);
        CBrush RedBrush(r);
        CBrush BlueBrush(b);
        CBrush GreenBrush(g);
       // CPen    FatPen(PS_SOLID, 3, sw);
    //    pDC->SelectObject(&FatPen);
        //Hintergrund
        //pDC->FillSolidRect(rect, b);
        //Kreis zeichnen
        pDC->SelectObject(&GreenBrush);
    //	pDC->TextOut(300,300,"totalminute");
    	pDC->TextOut(325,300,totalminute);//->Diese Wert kann ich nicht sehen
        pDC->Ellipse(rect);
        //erster Teilstrich von Mitte nach oben
        pDC->MoveTo(center);
        pDC->LineTo(center.x, center.y-radius);
    
        //Schlafzeit einzeichnen
        double winkel = tSchlaf*(2*M_PI/tGes);    //winkel in °
        pDC->MoveTo(center);
        pDC->LineTo(center.x + sin(winkel)*radius, center.y - cos(winkel)*radius);    
        //Fläche einfärben
    	pDC->SelectObject(&RedBrush);
        pDC->ExtFloodFill(200, 200, g,FLOODFILLSURFACE);
    
    }
    

    Hallo ,
    Mit mein Code zeichne ich ein Kreisdiagramm und darauf will ich paar werte und messungen anzeigen.
    Bei der 50.Zeile habe ich versucht ein Wert auszugeben aber leider ,ich sehe keinen Wert sondern ne Komische eckige klammer.
    kann mir bitte jemand helfen.
    MfG



  • totalminute ist doch ein int, aber Textout kann nun mal nur Text ausgeben. Also totalminute in Text konvertieren und dann sollte das gehen

    CString stotalminute;
    stotalminute.Format(_T("%d"),totalminute);
    pDC->TextOut(325,300,stotalminute);
    

Anmelden zum Antworten