vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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: Listview in XP/Vista Style Problem... 
Autor: --Florian--
Datum: 09.10.08 00:33

So ich habs geschafft =)

Ich hab nun mit WS_CLIPCHILDREN den Header im Vordergrund gesetzt. Somit ist das Problem behoben.
Das Listview Control verhält sich nun wie die im Windows Explorer.

Nun das ganze mal als Funktion...

Module:
Option Explicit
 
Private Declare Function GetWindowLong Lib "user32" _
  Alias "GetWindowLongA" ( _
  ByVal hWnd As Long, _
  ByVal nIndex As Long) As Long
 
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 SendMessageLong Lib "user32" Alias "SendMessageA" ( _
    ByVal hWnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
 
Private Const LVM_FIRST As Long = &H1000
Private Const LVM_SETEXTENDEDLISTVIEWSTYLE As Long = LVM_FIRST + &H36
Private Const LVM_GETEXTENDEDLISTVIEWSTYLE As Long = LVM_FIRST + &H37
 
Private Const LVS_EX_DOUBLEBUFFER As Long = &H10000
Private Const LVS_EX_GRIDLINES As Long = &H1
Private Const LVS_EX_FULLROWSELECT As Long = &H20
Private Const LVS_EX_HEADERDRAGDROP As Long = &H10
Private Const LVS_EX_INFOTIP As Long = &H400
 
Private Const GWL_STYLE = (-16)
Private Const WS_CLIPCHILDREN       As Long = &H2000000
 
Public Function SetLWStyle(hWnd As Long, _
                Optional Doublebuffer As Boolean = False, _
                Optional HeaderOnTop As Boolean = False, _
                Optional FullRowSelect As Boolean = False, _
                Optional InfoTip As Boolean = False, _
                Optional HeaderDragDrop As Boolean = False, _
                Optional GridLines As Boolean = False)
 
Dim lvStyle As Long
Dim lRetVal As Long
Dim lStyle As Long
 
lvStyle = SendMessageLong(hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0&, 0&)
lvStyle = lvStyle Or IIf(Doublebuffer = True, LVS_EX_DOUBLEBUFFER, 0&) Or _
                     IIf(FullRowSelect = True, LVS_EX_FULLROWSELECT, 0&) Or _
                     IIf(InfoTip = True, LVS_EX_INFOTIP, 0&) Or _
                     IIf(HeaderDragDrop = True, LVS_EX_HEADERDRAGDROP, 0&) Or _
                     IIf(GridLines = True, LVS_EX_GRIDLINES, 0&)
 
lRetVal = SendMessageLong(hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0&, ByVal lvStyle)
 
If HeaderOnTop Then
   lStyle = GetWindowLong(hWnd, GWL_STYLE)
   lStyle = (lStyle Or WS_CLIPCHILDREN)
   Call SetWindowLong(hWnd, GWL_STYLE, lStyle)
End If
End Function
UserForm:
Private Sub Form_Load()
  'Microsoft Common Controls 5.0
  SetLWStyle ListView1.hWnd, True, True, False, False, False, False
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Listview in XP/Vista Style Problem...2.255--Florian--04.10.08 04:31
Re: Listview in XP/Vista Style Problem...1.332VBStein04.10.08 19:41
Re: Listview in XP/Vista Style Problem...1.375--Florian--05.10.08 15:03
Re: Listview in XP/Vista Style Problem...1.325--Florian--09.10.08 00:33

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