45° Text positionieren?



  • Ich versuche einen Text der mit einen 45° Font geschreiben ist so zu positionieren das er an einen bestimmten Punkt endet.Doch irgendwas mache ich falsch.

    //erstmal der Font den ich benutze
    CFont * x_axisfont		=	new CFont();
    		x_axisfont->CreateFont(
    		8,
    		0,
    		450,
    		0,
    		FW_NORMAL,
    		false,
    		false,
    		false,
    		ANSI_CHARSET,
    		OUT_DEFAULT_PRECIS,
    		CLIP_DEFAULT_PRECIS,
    		DEFAULT_QUALITY,
    		DEFAULT_PITCH|FF_SWISS,
    		"Arial");
    
    //Jetzt der Code den ich zum Berechnen und Zeichnen verwende
    //draw_points enthält die Punkte in meinen Diagramm
    for(int i =0;i < draw_points.GetSize();i++)
    {
     dc.MoveTo(draw_points[i]->x,y_axis.axis_area.BottomRight().y+1);
     dc.LineTo(draw_points[i]->x,y_axis.axis_area.BottomRight().y+6);
     if(!x_axis.labels[i].IsEmpty())
     {
      old_font = dc.SelectObject(x_axis.axis_lablefont);
      TEXTMETRIC tm;
      dc.GetTextMetrics(&tm);
      old_textcolor   =  dc.SetTextColor(x_axis.axis_textcolor);
      old_bgcolor     =  dc.SetBkColor(x_axis.axis_bgcolor);
      int c           =  x_axis.labels[i].GetLength() * tm.tmMaxCharWidth;
      double a = sqrt((c*c)/2);
      dc.TextOut(draw_points[i]->x -(int) a,y_axis.axis_area.BottomRight().y+6+(int) a,x_axis.labels[i]);
      dc.SetTextColor(old_textcolor);
      dc.SetBkColor(old_bgcolor);
      dc.SelectObject(old_font);
     }
    }
    

    Ich dachte ich könnte den Startpunkt mit Pythagoras berechnen,aber der Text wird nicht angezeigt,er muss woll irgendwo ausserhalb des Fensters landen.
    Hat jemand einen Vorschlag wie ich den Text dahin bekomme wo er hin soll?


Anmelden zum Antworten