Pintar texto de abajo hacia arriba

20/12/2006 - 17:18 por RFOG | Informe spam
Hola

A ver si alguien lo sabe, yo no lo encuentro por ningún lado.

Tengo que pintar un texto de abajo hacia arriba en vertical. En principio no
es problema, porque asigno DirectionRightToLeft y DirectionVertical en el
formato de la cadena y ya está, pero el problema es que lo hace de arriba
hacia abajo y justo a revés. Vamos, que debería darle la vuelta 180º.

Con SetTransformation lo puedo hacer, y también pintando sobre un bitmap y
luego copiándolo rotado 180º, pero no me creo que haya alguna forma de
hacerlo de forma normal, con alguna propiedad de DrawString...



Visita mi blog principal: http://rfog.blogsome.com
Y este sobre programación: http://geeks.ms/blogs/rfog
Libros, ciencia ficción y programación
El verdadero modo de no saber nada es aprenderlo todo a la vez.
 

Leer las respuestas

#1 RFOG
20/12/2006 - 21:59 | Informe spam
RFOG explained on 20/12/2006 :
Hola

A ver si alguien lo sabe, yo no lo encuentro por ningún lado.

Tengo que pintar un texto de abajo hacia arriba en vertical. En principio no
es problema, porque asigno DirectionRightToLeft y DirectionVertical en el
formato de la cadena y ya está, pero el problema es que lo hace de arriba
hacia abajo y justo a revés. Vamos, que debería darle la vuelta 180º.

Con SetTransformation lo puedo hacer, y también pintando sobre un bitmap y
luego copiándolo rotado 180º, pero no me creo que haya alguna forma de
hacerlo de forma normal, con alguna propiedad de DrawString...



Este código lo hace, gracias al Petzold y a un poco de acordarme de la
madre de alguien (directamente sobre la ficha -lo comentado-, no
funciona, ¿Cómo le habrá funcionado a Pezold? Misterios sin resolver):

Bitmap ^bmp=gcnew
Bitmap(m_editNumberRect[m_idxCurrentEditing].Width,m_editNumberRect[m_idxCurrentEditing].Height,e->Graphics);
Graphics ^g=Graphics::FromImage(bmp);
g->TranslateTransform((float)(m_editNumberRect[m_idxCurrentEditing].Width+15),(float)m_editNumberRect[m_idxCurrentEditing].Height); //+15
is font displacemente correction (well done is to get metrics).
g->ScaleTransform(-1,-1);
g->DrawString(m_editNumber[m_idxCurrentEditing],m_textFont,Brushes::Black,0,0,m_stringFormat);
e->Graphics->DrawImage(bmp,m_editNumberRect[m_idxCurrentEditing]);

/*
e->Graphics->ScaleTransform(-1,-1);
e->Graphics->DrawString(m_editNumber[m_idxCurrentEditing],m_textFont,Brushes::Black,0,0,m_stringFormat);
e->Graphics->DrawString(m_editNumber[m_idxCurrentEditing],m_textFont,Brushes::Black,m_editNumberRect[m_idxCurrentEditing],m_stringFormat);
*/

Preguntas similares