ListView mit LVM_SETEXTENDEDLISTVIEWSTYLE beeinflussen?

29/01/2010 - 16:28 von Ralf Schlegel | Report spam
Hallo *.Experts!

In meinem VB6 Explorer würde ich gerne im ListView das Markieren der
Icons mit einem Rahmen gestalten!
Laut MSDN gibt es dafür den SendMessage-Befehl
"LVM_SETEXTENDEDLISTVIEWSTYLE" in Verbindung mit "LVS_EX_BORDERSELECT"

Ich erstelle also eine ImageList (96x96 Pixel = Thumbnails),
binde Sie an die Icon-Eigenschaft meines ListViews und setze den
"Borderselect"-Style foldendermaßen (Codeausschnitt):

Const LVM_FIRST As Long = &H1000
Const LVM_GETEXTENDEDLISTVIEWSTYLE As Long = (LVM_FIRST + 55)
Const LVS_EX_BORDERSELECT As Long = &H8000

Public Sub lvwSetExtendedListViewStyle(ByVal hwnd As Long, _
ByVal newStyle As Long, ByVal notStyle As Long)
SendMessageLong hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, ByVal notStyle,
ByVal newStyle
End Sub


Aufruf zum Setzen:
lvwSetExtendedListViewStyle (ListView1.hWnd, LVS_EX_BORDERSELECT, 0)
oder zum Löschen:
lvwSetExtendedListViewStyle (ListView1.hWnd, 0, LVS_EX_BORDERSELECT)

Leider passiert aber absolut garnix!!! Nicht mal ein Absturz :-)

Kann mir jemand sagen, warum das so ist?
Mache ich einen Denkfehler?
Muss das ListView ganz bestimmte Eigenschaften haben, um den Befehl zu
verarbeiten?

Im Voraus Danke

Ralf Schlegel
www.vb-zentrum.de
 

Lesen sie die antworten

#1 Timo Kunze
29/01/2010 - 23:37 | Warnen spam
Nutzt du das ListView aus den Common Controls 6.0? Mit dem aus den
Common Controls 5.0 hast du bessere Chancen.
Außerdem ist dein Aufruf nicht wirklich korrekt. Der 1. Parameter
(wParam) ist eine Bit-Maske, die die Styles angibt, die du àndern
möchtest. Setzt du wParam auf 0, ànderst du *alle* LVS_EX_*-Styles. Der
2. Parameter (lParam) ist auf 0 zu setzen, um den Style zu entfernen,
und auf den Style selbst (also auf die LVS_EX_*-Konstante), um den Style
zu setzen. Für wParam = 0 definiert lParam die zu setzenden Styles.
Dein Aufruf zum Entfernen des Styles ist demzufolge zufàllig gerade
korrekt, aber der zum Setzen ist falsch.

Timo
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."
"Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
Überzeugung, dass die demokratischen Kràfte überwiegen und sich – auf
demokratischem Wege – durchsetzen."

Ähnliche fragen