vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

Fortgeschrittene Programmierung
Re: Text vertikal zentrieren? Thread für echte Profis. 
Autor: RalfH
Datum: 26.09.03 10:09

Servus,

wenn ich dich richtig verstehe, wills Du nur nen Text zentrieren.

Das geht mit einer Picturebox und ihrer PRINT-Methode am einfachsten.

So in etwa:
Option Explicit
 
Private Const DT_TOP = &H8      ' Text an den oberen Rand
Private Const DT_MITTLE = &H10  ' Text vertikal zentrieren
Private Const DT_BOTTOM = &H20  ' Text an den unteren Rand
Private Const DT_LEFT = &H1     ' Text nach links ausrichten
Private Const DT_CENTER = &H2   ' Text horizontal ausrichten
Private Const DT_RIGHT = &H4    ' Text nach rechts ausrichten
 
 
Private Enum DTTEXTALIGNMENT
  dtTopLeft = DT_TOP + DT_LEFT
  dtTopCenter = DT_TOP + DT_CENTER
  dtTopRight = DT_TOP + DT_RIGHT
  dtMittleLeft = DT_MITTLE + DT_LEFT
  dtMittleCenter = DT_MITTLE + DT_CENTER
  dtMittleRight = DT_MITTLE + DT_RIGHT
  dtBottomLeft = DT_BOTTOM + DT_LEFT
  dtBottomCenter = DT_BOTTOM + DT_CENTER
  dtBottomRight = DT_BOTTOM + DT_RIGHT
End Enum
 
Private Sub Form_Load()
  DrawText Picture1, "Test-Text", dtTopCenter
End Sub
 
Private Sub DrawText(picBox As PictureBox, ByVal Text As String, _
  Optional ByVal TextAlignment As DTTEXTALIGNMENT = dtMittleCenter)
 
  Dim X As Single, Y As Single
 
  With picBox
 
    ' stellt sicher, das der Text durch andere Fenster nicht "weggewischt" wird
    .AutoRedraw = True
 
    ' stellt sicher, das Text kein Focus bekommt
    .Enabled = False
 
    ' löscht den Hintergrund der PicturBox
    .Cls
 
    ' WICHTIG! übernimmt die Font-Einstellung der Form
    ' die beiden weiter unten verwendeten VB-Funktionen
    ' "TextWidth" und "TextHeight" berechnen nämlich die
    ' Textgröße in Bezug auf die Form-Schrift
    .Font.Size = Me.Font.Size
 
    ' Text horizontal ausrichten
    If (TextAlignment And DT_LEFT) <> 0 Then X = 0
    If (TextAlignment And DT_CENTER) <> 0 Then X = (.ScaleWidth - TextWidth( _
      Text)) \ 2
    If (TextAlignment And DT_RIGHT) <> 0 Then X = .ScaleWidth - TextWidth(Text)
 
    ' Text vertikal ausrichten
    If (TextAlignment And DT_TOP) <> 0 Then Y = 0
    If (TextAlignment And DT_MITTLE) <> 0 Then Y = (.ScaleHeight - _
      TextHeight(Text)) \ 2
    If (TextAlignment And DT_BOTTOM) <> 0 Then Y = .ScaleHeight - TextHeight(Text)
 
    ' Ausgabe-Position setzen
    .CurrentX = X
    .CurrentY = Y
 
  End With
 
  ' Text ausgeben
  picBox.Print Text
 
End Sub
Das ganze geht nactürlich auch in ein UserControl zu packen.

Viel Spass,
R@lf

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Text vertikal zentrieren? Thread für echte Profis.5.655GuidoE26.09.03 02:42
Re: Text vertikal zentrieren? Thread für echte Profis.4.699RalfH26.09.03 10:09
Re: Text vertikal zentrieren? Thread für echte Profis.4.376GuidoE26.09.03 19:34
Re: Text vertikal zentrieren? Thread für echte Profis.4.353Zardoz26.09.03 22:04
Re: Text vertikal zentrieren? Thread für echte Profis.4.341GuidoE27.09.03 06:09
Re: Text vertikal zentrieren? Thread für echte Profis.4.560GuidoE27.09.03 06:39
Bitte auch für mich!4.166That27.09.03 13:50
Re: Bitte auch für mich!4.534GuidoE27.09.03 19:30
Re: Bitte auch für mich!3.905Mr. Fox28.09.03 08:45
Re: Bitte auch für mich!4.127That28.09.03 15:39
Re: Bitte auch für mich!3.871GuidoE28.09.03 18:22
Re: Bitte auch für mich!3.912That28.09.03 20:38
Sheridan 3D-Controls4.351GuidoE28.09.03 22:11
Re: Sheridan 3D-Controls3.973That29.09.03 15:56
Re: Sheridan 3D-Controls5.453AuTec31.10.03 01:21
Re: Bitte auch für mich!3.996Elwood06.10.03 07:51
Re: Bitte auch für mich!3.905GuidoE06.10.03 18:46
Re: Text vertikal zentrieren? Thread für echte Profis.4.038E728.09.03 19:02

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-2024 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