vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: 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
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Vertikale schrift124Dani23.08.01 15:04
Und wieder sagt Dir ein Tipp aus dem Archiv, wie's geht... ;...409ModeratorDieter23.08.01 15:10
Re: Und wieder sagt Dir ein Tipp aus dem Archiv, wie's geht....92Dany26.08.01 18:10
Re: Vertikale schrift68Dany26.08.01 18:13
Re: Vertikale schrift422ModeratorDieter27.08.01 18:39
Re: Vertikale schrift60Dany10.09.01 20:13
Re: Vertikale schrift401ModeratorDieter10.09.01 20:32

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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