ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 13.01.2000

Diese Seite wurde zuletzt aktualisiert am 13.01.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Zurück...


Anzeige

Wolfgang Kluge - http://www.vbwelt.deWolfgang Kluge/Harald M. Genauck mailto:hg_captionalign@aboutvb.de

Scheinbar unverrückbar sind die Beschriftungen von Steuerelementen wie CommandButton, CheckBox, Option und Frame angeordnet. Sie vermuten ganz richtig, dass dem schließlich doch nicht so ist.


Die Beschriftungen eines CommandButtons, einer CheckBox, einer Option oder eines Frames lassen sich ausrichten

Die Anordnung der Beschriftung zählt nämlich zu den sogenannten Fensterstilen, die Sie über das Gespann der API-Funktionen MSDN-Library - GetWindowLongGetWindowLong und MSDN-Library - SetWindowLongSetWindowLong manipulieren können. Mit GetWindowLong lesen Sie den aktuellen Fensterstil aus, verknüpfen dessen Wert mit der Konstanten für die gewünschte Ausrichtung der Beschriftung, und schreiben ihn wieder mit SetWindowLong zurück. Bei einem CommandButton können Sie beispielsweise die Beschriftung so an der Oberkante zentriert ausrichten:

Private Declare Function SetWindowLong Lib "user32" Alias _
 "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
 ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias _
 "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) _
 As Long

Private Const GWL_STYLE = (-16)

Private Const BS_TOP = &H400
Private Const BS_VCENTER = &HC00
Private Const BS_BOTTOM = &H800
Private Const BS_LEFT = &H100
Private Const BS_CENTER = &H300
Private Const BS_RIGTH = &H200

'...
Dim nWindowLong as Long

nWindowLong = GetWindowLong(Command1.hwnd, GWL_STYLE)
nWindowLong = nWindowLong Or BS_TOP
SetWindowLong Command1.hwnd, GWL_STYLE, nWindowLong
Command1.Refresh

Wie Sie aus der kleinen Animationsgrafik ersehen können, wirkt sich die Änderung der Ausrichtung bei CheckBoxen und Optionen nicht nur auf die eigentliche Beschriftung, sondern auch auf die Anordnung des Check- bzw. Options-Elements aus. Je nach voreingestellter Ausrichtung der Visual Basic-Eigenschaft Alignment gibt es leichte Unterschiede in der Darstellung. Bei der in der Animation dargestellten Checkbox ist die Alignment-Eigenschaft auf 0 (Links ausgerichtet), bei der Option auf 1 (Rechts ausgerichtet) eingestellt. Außerdem bleiben die Stile Oben-Mitte und Unten-Mitte ohne Wirkung. Auch beim Frame-Steuerelement zeigen nicht alle Stile Wirkung. Hier sind es nur die Stile Links, Zentriert und Rechts.

Ändern Sie die Ausrichtung eines dieser Steuerelemente mehrmals nachträglich, sollten Sie die vorherige Ausrichtung löschen. Anderenfalls bekommen Sie immer neue Kombinationen der Stile und es wird leicht unübersichtlich, welcher Stil eigentlich gerade gesetzt ist. Die Löschung erreichen Sie, indem Sie den Stil mit der Negation der Kombination aller Stile maskieren. Damit Sie diese Löschung und die Kombination der Stile nicht jedes Mal aufs neue vornehmen müssen, packen Sie das ganze am besten in eine kleine Funktion in einem Standard-Modul. Dieser übergeben Sie das betreffende Steuerelement und den gewünschten Ausrichtungsstil als vorbereitete Konstante.

Public Const capAlignNone = 0
Public Const capAlignCenter = BS_CENTER
Public Const capAlignLeftTop = BS_LEFT Or BS_TOP
Public Const capAlignTop = BS_TOP
Public Const capAlignRightTop = BS_RIGHT Or BS_TOP
Public Const capAlignRight = BS_RIGHT
Public Const capAlignRightBottom = BS_RIGHT Or BS_BOTTOM
Public Const capAlignBottom = BS_BOTTOM
Public Const capAlignLeftBottom = BS_LEFT Or BS_BOTTOM
Public Const capAlignLeft = BS_LEFT

Public Function CaptionAlign(Control As Control, _
 Optional ByVal Alignment As Long)
  Dim nWindowLong As Long
  Dim nClear As Long
  
  Const kAll& = BS_TOP Or BS_VCENTER Or BS_BOTTOM Or BS_LEFT _
   Or BS_CENTER Or BS_RIGHT
  
  nClear = Not kAll
  With Control
    nWindowLong = GetWindowLong(.hwnd, GWL_STYLE)
    nWindowLong = (nWindowLong And nClear) Or Alignment
    SetWindowLong .hwnd, GWL_STYLE, nWindowLong
    .Refresh
  End With
End Function

Die Funktion CaptionAlign verpackt das Setzen der Ausrichtungsstile für den handlichen Aufruf


Beispiel-Projekt und Modul modCaptionAlign (capalign.zip - ca. 3 KB)






Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer