Tipp 0499 Titelzeile zentrieren
Autor/Einsender:
Datum:
  Detlev Schubert
22.06.2006
Entwicklungsumgebung:   VB 6
Ohne die Zuhilfenahme von API-Funktionen, also nur mit VB-Bordmitteln lässt sich problemlos eine Titelzeile unabhängig von der Formgröße zentrieren.
Mit einem nicht sichtbaren Label wird einmal die Breite eines Leerzeichens (intSpace) und dann die Breite des ganzen Labels inkl. des Textes für den Titel (intCapt) ermittelt. Hiervon wird dann die Breite des Symbols abgezogen. Anschließend wird das so formatierte Label unter Berücksichtigung der Breite der ControlButtons in die Titelzeile (Caption) der Form übertragen.
Damit die Titelzeile unabhängig von der Bildschirmauflösung auch zentriert bleibt erfolgt der Aufruf der Funktion im Resize-Ereignis der Form. Um beim Verkleinern der Form in die TaskBar den Titel auch noch lesen zu können, wird hier noch der Status geprüft, und die für die Zentrierung verwendeten Leerzeichen entfernt.
 
Option Explicit

Dim TitelText As String

Private Function CenterTitle()
  Dim intCapt  As Integer
  Dim intSpace As Integer
  Dim cClipBox As Long

  cClipBox = 1750

  With Label1
    .AutoSize = True
    .FontName = "MS Sans Serif"
    .FontBold = True
    .FontSize = 8
    .Caption = " "
    intSpace = .Width - 15
    .Caption = TitelText
    intCapt = .Width - 15
    .Visible = False
  End With

  Select Case BorderStyle
    Case 1, 3
       cClipBox = cClipBox - 800
    Case Else
  End Select

  If ControlBox = False Then cClipBox = 450

  If Me.Width < intCapt + cClipBox Then
    Me.Width = (intCapt + cClipBox)
  End If

  Me.Caption = String$((Me.Width - (intCapt + cClipBox)) / _
        (2 * intSpace), " ") & TitelText
End Function

Private Sub Form_Load()
  TitelText = "Zentrierte Titelzeile"
End Sub

Private Sub Form_Resize()
  If WindowState <> vbMinimized Then
    CenterTitle
  Else
    Me.Caption = Trim$(Me.Caption)
  End If
End Sub
 
Weitere Links zum Thema
Form ohne Titelleiste erzeugen
Laufschrift in der Titelleiste
Titelleiste blinken lassen

Windows-Version
95
98
ME
NT
2000
XP
Vista
Win 7
VB-Version
VBA 5
VBA 6
VB 4/16
VB 4/32
VB 5
VB 6


Download  (3 kB) Downloads bisher: [ 307 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Donnerstag, 25. August 2011