VB-Homepage Tipp 153

zu lange Listboxeinträge als Tooltip anzeigen

Nun ist es also soweit, die Datenbank beinhaltet zwar schon zwei Projekte für die VB-Version 5.0, aber einen Tipp der reinweg nur für VB5 ist, gab es bisher noch nie.
Der hier aber ist, in der vorgestellten Version, nur mit VB5 zu verwirklichen.
Es geht dabei um das Anzeigen von zu langen Listbox Einträgen als Tooltip,
eine Funktionalität wie man sie zum Beispiel im Acrobat Reader oder im Explorer bestaunen kann.

listtips.vbp
Type=Exe
Form=listtips.frm
IconForm="Form1"
Startup="Form1"
HelpFile=""
Title="Anzeige zu langer Listeinträge"
ExeName32="listtips"
Command32=""
Name="Project1"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName=""
CompilationType=-1
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
ThreadPerObject=0
MaxNumberOfThreads=1

listtips.frm
VERSION 5.00
Begin VB.Form Form1
Caption = "VB-Homepage Tipp"
ClientHeight = 2400
ClientLeft = 60
ClientTop = 345
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 2400
ScaleWidth = 4680
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton Command2
Caption = " - Command2 -"
Height = 375
Left = 2400
TabIndex = 3
Top = 720
Width = 2175
End
Begin VB.CommandButton Command1
Caption = "..geht so leider nur in VB5"
Height = 375
Left = 2400
TabIndex = 2
Top = 240
Width = 2175
End
Begin VB.ListBox List1
Height = 1035
Left = 120
TabIndex = 0
Top = 240
Width = 2175
End
Begin VB.Label Label2
BackStyle = 0 'Transparent
Caption = "Tipp von : Matt Vandenbush [matt_vandenbush@whbrady.com]"
Height = 255
Left = 120
TabIndex = 4
Top = 2040
Width = 4455
End
Begin VB.Label Label1
Alignment = 2 'Center
BackStyle = 0 'Transparent
Caption = "Anzeigen von zu langen Einträgen aus Listboxen, auch ohne, daß diese markiert sein müssen."
Height = 495
Left = 120
TabIndex = 1
Top = 1440
Width = 4335
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const LB_ITEMFROMPOINT = &H1A9
Private Sub Form_Load()
Form1.Top = Screen.Height / 2 - Form1.Height / 2
Form1.Left = Screen.Width / 2 - Form1.Width / 2
With List1
.AddItem "Microsoft© Visual Basic Version 3.0"
.AddItem "Microsoft© Visual Basic Professional Edition Version 4.0"
.AddItem "Microsoft© Visual Basic Enterprice Edition Version 5.0"
End With
End Sub
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lXPoint As Long
Dim lYPoint As Long
Dim lIndex As Long
If Button = 0 Then
lXPoint = CLng(X / Screen.TwipsPerPixelX)
lYPoint = CLng(Y / Screen.TwipsPerPixelY)
With List1
lIndex = SendMessage(.hwnd, LB_ITEMFROMPOINT, 0, ByVal ((lYPoint * 65536) + lXPoint))
If (lIndex >= 0) And (lIndex <= .ListCount) Then
.ToolTippText = .List(lIndex)
Else
.ToolTippText = ""
End If
End With
End If
End Sub

Um den Code nutzen zu können, erstellen Sie sich mit einem Editor Dateien, die Sie wie angegeben benennen und fügen den Code ein. Starten Sie dann die *.vbp Datei oder öffnen Sie das Projekt aus VB heraus.

Tipp-Download

Quelle : Matt Vandenbush matt_vandenbush@whbrady.com

Zurück zur Übersichtsseite