Okay, så er jeg kommet et skridt videre. Jeg har altså en listboks på min form. Denne listboks har formen som parent. Når listboksen vises og går ud over formens grænser forsvinder denne del af den. Den umiddelbare løsning er, at reparent'e listboksen fra formen til desktop'en. Det gøres med følgende kode:
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, _
ByVal hWndNewParent As Long) As Long
Private Sub ReparentLB()
Dim lngDesktopWin As Long
' Få fat i desktop vinduets hwnd
lngDesktopWin = GetDesktopWindow()
' Her får listboksen sine nye parent
SetParent List1.hwnd, lngDesktopWin
' Herunder sættes listboksen placering og den gøres synlig
List1.Left = Form1.Left + 200
List1.Top = Form1.Top + 2400
List1.Visible = True
End Sub
Nu er mit problem bare, at listboksen ikke umiddelbart reagerer på museklik etc. Den virker død.
Her er et par links som indtil videre har hjulpet mig:
http://lists.topica.com/lists/VB6Helper/read/message.html?mid=809080122&sort=d&start=5http://www.freevbcode.com/ShowCode.Asp?ID=2835Jeg har søgt på google med søgeordene: user-drawn, SetParent, GetDesktopWindow, vb6, combobox og listbox i forskellige kombinationer.
Jeg har også forsøgt at finde en måde at gøre combobox'en (i VB6's toolbox) mindre i højden ved at sætte font-size, men den kan desværre ikke gøres mindre end 8 (klik på "..." i Font i Property Window i VB6.
Jeg vender tilbage med mere. Hvis du har gode idéer og forslag modtages de gerne.
Mvh
Paul