| |

Fortgeschrittene ProgrammierungRe: Und wieder sagt Dir ein Tipp aus dem Archiv, wie's geht...  | |  | Autor: Dany | Datum: 26.08.01 18:10 |
|
Hoi Dieter
Du habe ne frage nochmals wegen dem text drehen irgendwie funktioniert das bei mir nicht !
Schau mal den code an was mach ich falsch ??
es kehrt den text einfach nicht !!
danke dir für die hilfe jetzt schon
dani
Option Explicit
' zunächst die benötigten API-Deklarationen
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 Const LF_FACESIZE = 32
Private Const ANTIALIASED_QUALITY = 4
Private Const FW_NORMAL = 400
Private Const FW_BOLD = 700
Private Const DEFAULT_CHARSET = 1
Private Const OUT_TT_PRECIS = 4
Private Const VARIABLE_PITCH = 2
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 Sub cmdDrucken_Click()
With printer
' in mm umstellen
.ScaleMode = 6
'-----------------------------------------------------------------------
.CurrentX = 30
.CurrentY = 50
BarcodeX1.PaintAt printer.hDC, 10, 20, 30, 40
.Font.Name = "Arial" ' Schrift "Arial"
.Font.Size = 14 ' Schriftgröße 16
.Font.Bold = True
printer.Print Text10.Text + vbCrLf
.CurrentX = 80
.CurrentY = 65
printer.Print Text2.Text
.CurrentX = 80
printer.Print Text3.Text
.CurrentX = 80
printer.Print Text4.Text
.CurrentX = 80
printer.Print Text5.Text
.CurrentX = 50
.CurrentY = 90
PrintRotatedText printer, "www.vbarchiv.de"
'--------------------------------------------------------------------------------------
printer.EndDoc
End With
End Sub
' Text um 90° gedreht ausgeben
Private Function PrintRotatedText(prnObj As Object, _
ByVal Text As String) As Boolean
Dim RotFont As LOGFONT
Dim OrgFont As Long
Dim hFont As Long
Dim X As Single
Dim Y As Single
Dim xSize As Long
Dim ySize As Long
Const Winkel = 90
On Local Error GoTo Error_PrintRotatedText
With prnObj
' LOGFONT definieren
With RotFont
.lfEscapement = CLng(Winkel * 10)
.lfFaceName = prnObj.Font.Name
.lfHeight = prnObj.Font.Size * -20 / _
Screen.TwipsPerPixelY
.lfWeight = IIf(prnObj.Font.Bold, FW_BOLD, FW_NORMAL)
.lfItalic = IIf(prnObj.Font.Italic, 1, 0)
.lfOutPrecision = OUT_TT_PRECIS
.lfQuality = ANTIALIASED_QUALITY
.lfCharSet = DEFAULT_CHARSET
.lfPitchAndFamily = VARIABLE_PITCH
End With
' Font-Objekt erzeugen und zuweisen
hFont = CreateFontIndirect(RotFont)
OrgFont = SelectObject(.hDC, hFont)
' Größe (Maße) des Textes
xSize = .TextWidth(Text)
ySize = .TextHeight(Text)
' Position
Y = .CurrentY + xSize
X = .CurrentX
.CurrentX = X
.CurrentY = Y
' Text ausgeben
prnObj.Print Text
' Originalfont wiederherstellen
SelectObject .hDC, OrgFont
' neuen Font löschen
DeleteObject hFont
End With
PrintRotatedText = True
Exit Function
Error_PrintRotatedText:
PrintRotatedText = False
End Function |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevDTA 3.0 Pro 
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|