How to Print Text Sideways in Picture Control with Windows APIID: Q99874
|
The example below shows how to print text sideways in a picture control using Windows API function calls. The text prints vertically in the picture control, rotated by 90 degrees.
DefInt A-Z
global Const LF_FACESIZE = 32
Type LOGFONT
lfheight As Integer
lfwidth As Integer
lfescapement As Integer
lforientation As Integer
lfweight As Integer
lfitalic As String * 1
lfunderline As String * 1
lfstrikeout As String * 1
lfcharset As String * 1
lfoutprecision As String * 1
lfclipprecision As String * 1
lfquality As String * 1
lfpitchandfamily As String * 1
lffacename As String * LF_FACESIZE
End Type
' Enter each of the following 7 Declare statement on one, single line:
Declare Function CreateFont% Lib "GDI" (ByVal h%, ByVal w%, ByVal e%,
ByVal o%, ByVal n%, ByVal i%, ByVal u%, ByVal s%, ByVal c%,
ByVal op%, ByVal cp%, ByVal q%, ByVal j%, ByVal f$)
Declare Function createfontindirect Lib "GDI" (lplogfont As LOGFONT)
As Integer
Declare Function selectobject Lib "GDI" (ByVal hdc%, ByVal object%)
As Integer
Declare Function textout Lib "GDI" (ByVal hdc%, ByVal x%, ByVal y%,
ByVal text$, ByVal ncount%) As Integer
Declare Sub deleteobject Lib "GDI" (ByVal object%)
Declare Function getdevicecaps Lib "GDI" (ByVal hdc%, ByVal nindex%)
As Integer
Declare Function gettextface Lib "GDI" (ByVal hdc As Integer,
ByVal ncount As Integer, ByVal lpname As String) As Integer
Global Const PROOF_QUALITY = 2
Global Const FW_NORMAL = 400
picture1.Cls
Dim hfont As Integer, holdfont As Integer
Dim font As LOGFONT
nvalue = getdevicecaps(picture1.hDC, 34)
font.lfheight = 12
font.lfwidth = 0
font.lfescapement = 900
font.lforientation = 900
font.lfweight = 400 'This is normal
font.lfitalic = Chr$(0)
font.lfunderline = Chr$(0)
font.lfstrikeout = Chr$(0)
font.lfcharset = Chr$(0)
font.lfoutprecision = Chr$(0)
font.lfclipprecision = Chr$(0)
font.lfquality = Chr$(2)
font.lfpitchandfamily = Chr$(33)
font.lffacename = "Courier New" + Chr$(0)
hfont = createfontindirect(font)
holdfont = selectobject(picture1.hDC, hfont)
szfacename$ = Space$(80)
retval% = gettextface(picture1.hDC, 79, szfacename$)
nchars = Len(sometext$)
picture1.CurrentX = 200
picture1.CurrentY = 2000
picture1.Print Left$(RTrim$(szfacename$), Len(RTrim$(szfacename$)) - 1)
deleteobject hfont
Additional query words: 1.00 2.00 3.00
Keywords :
Version :
Platform :
Issue type :
Last Reviewed: June 7, 1999