vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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: ToolTip bei FileListBox 
Autor: BAStler
Datum: 21.12.06 16:35

Hallo All und Stefan,

habe nochmal unter zu Hilfenahme des Links versucht, das Ganze in geordnete Bahnen zu bringen, allerdings habe ich meine Probleme mit den absoluten Koordinaten.
Mein Tooltip schwebt irgendwo auf dem Screen und Inhalt hat es auch nicht.
Der Source sieht momentan so aus und ich würde mich freuen, wenn mir jemand aus dem Dschungel hilft (sehe den Wald vor lauter Weihnachtsbäumen nicht mehr)
Global gRect as Rect 'ist global deklariert
Private Sub Datei1_MouseMove(Index As Integer, Button As Integer, Shift As _
  Integer, X As Single, Y As Single)
  Dim DateiName As String
  Dim nIndex As Long
  Dim nTop As Long
  Dim nLeft As Long
  Dim nHeight As Long
  Dim nWidth As Long
  Dim mDesktopWindow As Long
 
  ' Mit Hilfe des ermittelten Index, wird der Dateiname an DateiName übergeben
  nIndex = FileListBoxHitTest(Datei1(glngFileList), X, Y)
  DateiName = Datei1(glngFileList).List(nIndex)
  ' PictureBox leeren, zur Aufnahme des neu ermittelten Eintrages
  PicRuler.Cls
  PicRuler.AutoRedraw = True
  Set PicRuler.Font = Datei1(glngFileList).Font
  nWidth = PicRuler.TextWidth(DateiName)
  ' Anzeige soll nur erfolgen, wenn der Eintrag(DateiName) breiter als die 
  ' FileListBox ist
  If gRect.Right - gRect.Left <= PicRuler.TextWidth(DateiName) Then
    ' Startposition für Tooltip ermitteln (bis hierher klappt alles)
    nTop = gRect.Top + (nIndex - Datei1(glngFileList).TopIndex) * gItemHeight + _
      1
    nWidth = nWidth + PicRuler.TextWidth(" ")
    ' Hier soll nur die optimale Höhe eingestellt werden
    nHeight = PicRuler.TextHeight("A") + 3
 
--> Ab hier kommen die Schwierigkeiten, wo mir der Durchblick fehlt
    ' Position auf dem Bildschirm ermitteln
    If nWidth + 1 > Screen.Width \ Screen.TwipsPerPixelX Then
      nLeft = (Screen.Width \ Screen.TwipsPerPixelX) - nWidth
    End If
    If nTop + nHeight > Screen.Height \ Screen.TwipsPerPixelY Then
      nTop = (Screen.Height \ Screen.TwipsPerPixelY) - nHeight
    End If
    Debug.Print nLeft & ", " & nTop
    If GetParent(PicRuler.hwnd) <> GetDesktopWindow() Then
      SetParent PicRuler.hwnd, GetDesktopWindow()
    End If
    nTop = nTop + gRect.Bottom
    nLeft = gRect.Left
    ' Setzen des Tooltip auf die ermittelte Position, wo der Mauszeiger steht
    SetWindowPos PicRuler.hwnd, HWND_TOPMOST, nLeft, nTop, nWidth, nHeight, _
      SWP_NOACTIVATE
    PicRuler.Visible = True
    Debug.Print frmDosShell.Left & ", " & frmDosShell.Top & ", " & nLeft & ", " _
      & nTop & ", " & nWidth & ", " & nHeight
 
Datei1(glngFileList).ToolTipText = DateiName
  Else
     Datei1(glngFileList).ToolTipText = ""
     PicRuler.Visible = False
  End If
End Sub
Gruß BAStler
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ToolTip bei FileListBox1.576BAStler19.12.06 15:27
Re: ToolTip bei FileListBox991vbtricks19.12.06 18:34
Re: ToolTip bei FileListBox876BAStler19.12.06 20:28
Re: ToolTip bei FileListBox909vbtricks20.12.06 10:40
Re: ToolTip bei FileListBox894BAStler20.12.06 11:08
Re: ToolTip bei FileListBox880vbtricks20.12.06 11:17
Re: ToolTip bei FileListBox900BAStler21.12.06 16:35
Re: ToolTip bei FileListBox873vbtricks24.12.06 08:54
Re: ToolTip bei FileListBox860BAStler24.12.06 11:20
Re: ToolTip bei FileListBox908BAStler27.12.06 10:53

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