auxmoney - Geld leihen für das Studiumauxmoney - Geld leihen für das Studium

auxmoney - Geld leihen für den Umzugauxmoney - Geld leihen für den Umzug

Rotierender Text aus TextBox drucken

Rotierender Text aus TextBox drucken via CreateFontIndirect, DeleteObject, CreateDC, DeleteDC, TextOut, EndDoc, EndPage
Private Const LF_FACESIZE = 32
Private Type LOGFONT
lfHeight As Long
lfWidth As Long
lfEscapement As Long
lfOrientation As Long
lfWeight As Long
lfItalic As Byte
lfUnderline As Byte
lfStrikeOut As Byte
lfCharSet As Byte
lfOutPrecision As Byte
lfClipPrecision As Byte
lfQuality As Byte
lfPitchAndFamily As Byte
lfFaceName As String * LF_FACESIZE
End Type
Private Type DOCINFO
cbSize As Long
lpszDocName As String
lpszOutput As String
lpszDatatype As String
fwType As Long
End Type
Private Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, _
ByVal lpDeviceName As String, ByVal lpOutput As Long, ByVal lpInitData As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, _
ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long 'Or Boolean.
Private Declare Function StartDoc Lib "gdi32" Alias "StartDocA" (ByVal hdc As Long, lpdi As DOCINFO) As Long
Private Declare Function EndDoc Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function StartPage Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function EndPage Lib "gdi32" (ByVal hdc As Long) As Long
Const DESIREDFONTSIZE = 12 Could use variable, TextBox etc.
Private Sub cmd1_Click() Combine API Calls with the Printer object.
Dim OutString As String, lf As LOGFONT, result As Long, hOldfont As Long
Dim hPrintDc As Long, hFont As Long, i%, max%
max = 3600
Printer.Print ""
Printer.Print Tab(12); "Printer Object"
hPrintDc = Printer.hdc
OutString = Text1.Text Der zu rotierende String.
For i = 0 To max Max muss vierstellig sein.
lf.lfEscapement = i 1800 druckt auf dem Kopf.
lf.lfHeight = (DESIREDFONTSIZE * -20) / Printer.TwipsPerPixelY
hFont = CreateFontIndirect(lf)
hOldfont = SelectObject(hPrintDc, hFont)
result = TextOut(hPrintDc, 1400, 1500, OutString, _ Ausgabekoordinaten.
Len(OutString))
result = SelectObject(hPrintDc, hOldfont)
result = DeleteObject(hFont)
i = i + 200
Next i
Printer.Print Tab(12); "Zeile 2 wird nach der For-Schleife gedruckt."
Printer.EndDoc
End Sub
Private Sub cmd2_Click() Print using API calls only.
Dim OutString As String String to be rotated.
Dim lf As LOGFONT Structure for setting up rotated font.
Dim temp As String Temp string var.
Dim result As Long Return value for calling API functions.
Dim hOldfont As Long Hold old font information.
Dim hPrintDc As Long Handle to printer dc.
Dim hFont As Long Handle to new Font
Dim di As DOCINFO Structure for Print Document info.
OutString = "Hello World" Set string to be rotated.
Set rotation in tenths of a degree. 1800 = 180 degrees.
lf.lfEscapement = 1000 1800 druckt also auf dem Kopf.
lf.lfHeight = (DESIREDFONTSIZE * -20) / Printer.TwipsPerPixelY
hFont = CreateFontIndirect(lf) Create the rotated font.
di.cbSize = 20 Size of DOCINFO structure.
di.lpszDocName = "My Document" Set name of print job (Optional).
hPrintDc = CreateDC(Printer.DriverName, _ Create a printer device context.
Printer.DeviceName, 0, 0)
result = StartDoc(hPrintDc, di) Start a new print document.
result = StartPage(hPrintDc) Start a new page.
hOldfont = SelectObject(hPrintDc, hFont) Select our rotated font structure and save previous font info.
result = TextOut(hPrintDc, 1000, 1000, OutString, _ Send rotated text to printer, starting at location 1000, 1000.
Len(OutString))
result = SelectObject(hPrintDc, hOldfont) Reset font back to original, non-rotated.
result = TextOut(hPrintDc, 1000, 1000, OutString, _ Send non-rotated text to printer at same page location.
Len(OutString))
result = EndPage(hPrintDc) End the page.
result = EndDoc(hPrintDc) End the print job.
result = DeleteDC(hPrintDc) Delete the printer device context.
result = DeleteObject(hFont) Delete the font object.
End Sub
Sponsoren und Investoren

Sponsoren und Investoren sind jederzeit herzlich willkommen!
Wenn Sie die Information(en) auf dieser Seite interessant fanden, freuen wir uns über eine kleine Spende. Empfehlen Sie uns bitte auch in Ihren Netzwerken (z. B. Twitter, Facebook oder Google+). Herzlichen Dank!

Nach oben Sitemap
Impressum & Kontakt