Vertikale Schrift positionieren?



  • Ich schreibe mir zur Zeit eine Klasse um ein Diagramm darzustellen.
    Die Y-Achsen Beschriftung soll vertikal sein,daher benutze ich folgenden Font:

    CFont * title_axisfont		=	new CFont();
    	title_axisfont->CreateFont(
    		10,
    		0,
    		-900,
    		0,
    		FW_NORMAL,
    		false,
    		true,
    		false,
    		ANSI_CHARSET,
    		OUT_DEFAULT_PRECIS,
    		CLIP_DEFAULT_PRECIS,
    		DEFAULT_QUALITY,
    		DEFAULT_PITCH|FF_SWISS,
    		"Arial");
    

    Das klappt auch aber ich kriege jetzt den Text nicht mehr ordentlich positioniert.

    if(!y_axis.axis_title.IsEmpty())
    	{
    	    old_font = dc.SelectObject(y_axis.axis_titlefont);
                 TEXTMETRIC tm;
    	    dc.GetTextMetrics(&tm);
    	    CRect title_rect = y_axis.axis_area;
    	    //title_rect.BottomRight().x = 10 +tm.tmHeight; Wenn diese Zeilenicht auskommentiert ist wird der Text nicht gezeichnet,
    	    dc.DrawText(y_axis.axis_title,title_rect,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS);
    //Trotz DT_VCENTER und DT_CENTER klebt der Text an der oberen Kante
    	    dc.SelectObject(old_font);
    	}
    

    Irgendwelche Vorschläge was ich machen könnte?



  • Hi,

    DT_VCENTER funktioniert nur, wenn auch DT_SINGLELINE gesetzt ist (s. MSDN).

    Vielleicht löst es dein problem ja schon.

    Gruss
    EB


Anmelden zum Antworten