[comp.windows.ms.programmer] Writing vertical text with a non-stroked font

oivindt@bio.uio.no (Oivind Toien) (04/19/91)

I am trying to output vertical text to the screen initiated with the
CreateFontIndirect procedure. Setting the parameters
lfOrientation:=900; and lfEscapement:=900; makes stroked fonts (Roman,
Script and Modern) appear vertical. This does however not work with
the bit-mapped fonts, and not with the corresponding fonts on a system
where ATM was installed. The example I modified (GDIDEMO.PAS that came
with TP for Windows) uses the TextOut procedure. I have tried to play
with the other parameters in TLogFont with no improvement.

EXCEL 3.0 is however able to do this, and it seems that they do not
use special fonts. (I may be wrong here).

Am I missing something here? If it is not possible to do this now
(except using non-standard fonts and techniques), will this improve
when we get true-type?

Any comment will be appreciated. I will need vertical text on the Y-axis
for a plotting-program.

--
Oivind Toien   <oivindt@ulrik.uio.no>
Div. of General Physiology, Dept. of Biology, Univ. of Oslo
P.O. Box 1051, N-0316 Oslo 3, NORWAY  
Phone+47-2-454732  Fax+47-2-454726

rainer@zelator.uucp (Rainer Brendel) (04/21/91)

In <OIVINDT.91Apr19164856@darwin.uio.no> oivindt@bio.uio.no (Oivind Toien) writes:

>I am trying to output vertical text to the screen initiated with the
>CreateFontIndirect procedure. Setting the parameters
>lfOrientation:=900; and lfEscapement:=900; makes stroked fonts (Roman,
>Script and Modern) appear vertical. This does however not work with
>the bit-mapped fonts, and not with the corresponding fonts on a system
>where ATM was installed.

A possible solution is writing a string into a bitmap, turning the bitmap
by 90 degrees, and displaying it. Though this works with every bitmapped 
device, it looks good only on devices that have ASPECTX = ASPECTY. This
method is not restricted to diplay devices. If your printer has BitBlt
capability, you may apply it there as well. 
 
You may find an example of text drawn into a bitmap in chapter 9 of 
Charles Petzold's book. Rotating a bitmap requires a lot of bit shift-
ing that should be done in assembler. 
 
When I encountered the same problem I solved it with Actor and assembler.
Please feel free to email me for the assembler primitives and, if wanted, 
an Actor demo class. The assembler routines anyhow need some hacking. 
Actor has a different argument passing.
 
rainer
 
-- 
------------------------------------------------------------------------
 EMAIL: rainer@zelator.in-berlin.de                      Rainer Brendel
------------------------------------------------------------------------

kblackne@mcs.drexel.edu (Ken Blackney) (04/22/91)

In <OIVINDT.91Apr19164856@darwin.uio.no> oivindt@bio.uio.no (Oivind Toien) writes:
>
>>I am trying to output vertical text to the screen initiated with the
>CreateFontIndirect procedure. Setting the parameters
>lfOrientation:=900; and lfEscapement:=900; makes stroked fonts (Roman,
>Script and Modern) appear vertical. This does however not work with
>the bit-mapped fonts, and not with the corresponding fonts on a system
>where ATM was installed.
>
I have BitStream's FaceLift installed and what you described works just fine.
I wrote a small program to display a message at various angles to see how it
worked and it looked pretty good.  The system did not seem to allow an
escapement that is different than the orientation.  (It seemed to set the
escapement= orientation;)

I did not try it with non-FaceLift fonts.

Ken