PDA

View Full Version : [Visual C++]Scrivere testo in verticale


swarm
07-02-2006, 16:41
'Sera :D

la fo' breve: devo scrivere del testo in verticale in un certo punto dello schermo....

Ho visto che con CreateFont, tramite il terzo parametro (int nEscapement), posso ruotare il testo che poi vado a scrivere con TextOut....

il problema è questo: io voglio che il testo venga scritto tipo csì:

T
E
S
T
O
e nn ruotando tutta la scritta di n[pi/2].

Il parametro che sembrava fare al caso mio è nOrientation, ma nn ha alcun effetto...

ho letto che se nn setto la modalita grafica così SetGraphicsMode( , GM_ADVANCED), i due parametri che ho descritto devono essere uguali...

NN c'è un'altro modo? Visto che sto lavorando sotto win98, e sembra che anche in modalità GM_ADVANCED nn sia possibile settare l'orient. di ogni carattere....

Cumm se fa? :mc:

grazie

kk3z
07-02-2006, 17:36
La soluzione più semplice è inserire un \n dopo ogni carattere :), del tipo:
std::string stringaVerticale;
for(int i = 1; i<stringaVerticale.size(); ++i)
{
stringaVerticale.insert(i, "\n");
}

Ma magari esiste una soluzione più diretta :asd:

lfEscapement e lfOrientation mi pare riguardino solo angoli, quindi non credi ci sia questa soluzione (almeno con CreateFont o LOGFONT)

swarm
07-02-2006, 20:18
La soluzione più semplice è inserire un \n dopo ogni carattere :), del tipo:
std::string stringaVerticale;
for(int i = 1; i<stringaVerticale.size(); ++i)
{
stringaVerticale.insert(i, "\n");
}

Ma magari esiste una soluzione più diretta :asd:

lfEscapement e lfOrientation mi pare riguardino solo angoli, quindi non credi ci sia questa soluzione (almeno con CreateFont o LOGFONT)

grazie

cmq proprio con gli angoli (se fosse possibile) posso fare ciò che voglio...

cioè ruotare OGNI carattere di 90° (nOrientation)e la stringa di 90° (nEscapement) ;)

byez