Sie sind auf Seite 1von 3

********************

Info �ber ListView *


********************

Hier gibt es weiterf�hrende Informationen zu ListViews.


Orginal von: Philipp Sternberg,
�berarbeitet von Marc-Gordon Kr�hn
�berarbeitet von Gerhard Putschalka
erg�nzt aus Unterlagen von Richard Maurukas und Uwe "Pascal" Niemeier.

Grunds�tzlich sollten diese Angaben in der Win32.hlp auffindbar sein, es ist aber
nicht
immer einfach sie zu finden.

Schritte, die zum Erstellen eines ListViews erfolgen m�ssen.

1. ListView erstellen:
Let Hndl& = @control("SysListView32","Text",DwStyle&,XPos%,YPos%,XSize%,YSize
%,\
Hwnd&,Celemnt%,%Hinstance,dwExStyle&)
Ergebnis ist Handle des ListView
Hwnd& = Handle des aufrufenden Fensters
DwStyle& = Fensterstil des LVCs (siehe WinApiDoc CreateWindowEx)
XPos%,YPos% = X,Y Position in der client-area des �bergeordneten Fensters (in
Pixeln)
XSize%,YSize% = X,Y Gr��e (in Pixeln)
dwExStyle& = erweiterter Fensterstil des LVCs (siehe WinApiDoc
CreateWindowEx)
ExLvStyle& = noch erweiterter Fensterstil (Betr. die client-area des LVCs)
(siehe unten)
Celement% = x-beliebiger positiver Wert (bei mehreren mit @control erzeugten
Dialogelementen eines Fensters sollte jedes einen anderen Wert
erhalten)
Hndl& = ListView Handle

2. Erweiterten Fensterstil zuordnen:


@Sendmessage (Hndl&,$1036,0,ExLvStyle&)

3. (wahlweise) dem ListView Farben zuweisen (Schrift, Schrifthintergrund, ListView-


Hintergrund)

Def @SetLVTxtcolor(2) @sendmessage (@&(1),$1024,0,@&(2)) ' Textfarbe


Def @SetLVTxtbkcolor(2) @sendmessage (@&(1),$1026,0,@&(2)) ' Texthintergrundfarbe
Def @SetLVbkcolor(2) @sendmessage (@&(1),$1001,0,@&(2)) ' Fensterhintergrund

Beispiel: @SetLVTxtcolor(Hndl&,$00bbggrr)) ' die f�hrenden Nullen k�nnen


weggelassen werden
f�r jedes r, g und b kann 0 bis 9 und A bis F angegeben werden. Damit werden
die Farbanteile
f�r rot, gr�n und blau festgelegt. 00 = keine Farbe, FF ist max. Helligkeit der
Farbe. Beim
Texthintergrundfarbe gibt man sinnvoll Transparenz an (statt $rrggbb nur -1)

Dabei w�re $00FF0000 blau, $0000FF00 gr�n, $00FFFFFF w�re wei�. Es gibt jedoch
noch zwei
weitere Werte n�hmlich $FFFFFFFF=(CLR_NONE)=Transparent und
$FF000000=(CLR_DEFAULT) die
Farbe in der Items sind, wenn sie Highlited sind.
F�r den Texthintergrund ist $FFFFFFFF (oder auch -1 als dezimaler Ausdruck)
sinnvoll.

Die zugeordneten Farben k�nnen auch ausgelesen werden:


Def @GetLVTxtcolor(1) @sendmessage (@&(1),$1023,0,0) ' Textfarbe
Def @GetLVTxtbkcolor(1) @sendmessage (@&(1),$1025,0,0) ' Texthintergrundfarbe
Def @GetLVbkcolor(1) @sendmessage (@&(1),$1000,0,0) ' Fensterhintergrund
die ErgebnisVariable& erh�lt den Wert.

Einige Werte f�r DwStyle& (zus�tzlich zum Grundwert $50000000):


LVS_REPORT 1 Report Stil (�hnlich wie Listbox)
LVS_SINGLESEL 4 Schr�nkt auf Single-Select ein (Standard ist
Multiselect)
LVS_SHOWSELALWAYS 8 zeigt immer eine/die selektierte(n) Zeile(n) an.
LVS_SORTASCENDING 16 Eintr�ge werden aufsteigend nach 1. Spalte sortiert
angezeigt
LVS_SORTDESCENDING 32 Eintr�ge werden absteigend nach 1. Spalte sortiert
angezeigt
LVS_NOCOLUMNHEADER 16384 keine Spalten�berschriften
LVS_NOSORTHEADER 32768 Spalten�berschriften sind keine Buttons
WS_Dlgframe 4194304 Dialograhmen und keine Kopfzeile im ListView
WS_Caption 12582912 Dialograhmen und Kopfzeile im ListView

Die angef�hrten Werte k�nnen kombiniert (addiert) verwendet werden.


(Beipiel: Let DwStyle& = ($50000000 + 1 + 8 + 16384)

Werte f�r ExLVStyle%:


LVS_EX_GRIDLINES 1 Gitternetz wird eingezeichnet Nur in Report-Ansicht
LVS_EX_SUBITEMIMAGES 2 Auch Subitems k�nnen Images haben
LVS_EX_CHECKBOXES 4 Vor jedem Item befindet sich eine kleine Box zum
anhaken
LVS_EX_TRACKSELECT 8 "MouseOver" markiert die Zeile. Mit LVM_SETHOVERTIME
(4167) wird Zeit bis
zum Highliten eingestellt
LVS_EX_HEADERDRAGDROP 16 Die einzelnen Spalten der Report-View k�nnen Per
Drag'nDrop
getauscht werden
LVS_EX_FULLROWSELECT 32 Die ganze Zeile der Report-View wird selektiert.
LVS_EX_ONECLICKACTIVATE 64 Sendet nach einem Click auf Item die LVN_ITEMACTIVE
aktiviert
auch LVS_EX_TRACKSELECT
LVS_EX_TWOCLICKACTIVATE 128 Sendet nach einem Click auf Item die LVN_ITEMACTIVE
aktiviert
auch LVS_EX_TRACKSELECT
LVS_EX_FLATSB 256 Die Scrollbars sind nicht mehr in 3D sondern flach
LVS_EX_REGIONAL 512 Sets the list-view window region to include only the
item
icons and text using SetWindowRgn. Any area that is
not part
of an item is excluded from the window region. This
style is
only available to list-view controls that use the
LVS_ICON
style.
LVS_EX_INFOTIP 1024 LVN_GETINFOTIP (-158) wird an Hauptfenster gesandt
dann ein
Tooltip angezeigt.
LVS_EX_UNDERLINEHOT 2048 Causes those non-hot items that may be activated to
be
displayed with underlined text. This style requires
that
LVS_EX_TWOCLICKACTIVATE be set also. See the Remarks
for a
discussion of item activation
LVS_EX_UNDERLINECOLD 4096 Causes those non-hot items that may be activated to
be
displayed with underlined text. This style requires
that
LVS_EX_TWOCLICKACTIVATE be set also. See the Remarks
for a
discussion of item activation
LVS_EX_MULTIWORKAREAS 8192 If the list-view control has the LVS_AUTOARRANGE
style, the
control will not autoarrange its icons until one or
more work
areas are defined (see LVM_SETWORKAREAS). To be
effective,
this style must be set before any work areas are
defined and
any items have been added to the control.

Diese Werte k�nnen im @SendMessage als dezimaler oder Hexwert angegeben


werden. Z.B. 4132 = $1024.

4. Spalte(n) zuweisen.
EinListview ben�tigt Spalten (Columns) um Texte aufnehmen zu k�nnen. Mit der
Hinzuf�gung
von Spalten wird die Struktur der Zeile bestimmt. Damit wird die Breite und und
die Text-
ausrichtung jeder Spalte festgelegt. Der Text kann linksb�ndig, mittig oder
rechstb�ndig
ausgerichtet sein. Siehe Beispiel in denProgrammen Listbox6 und Listbox7.
Es wird auch die �berschrift der Spalte damit definiert.

5. Text zu einer Zeile/Spalte einsetzen. Anders als bei Listboxen mit AddString
wird hier
nicht eine gesamte Zeile sondern jede einzelne Spalte einer Zeile mit dem Text
gef�llt.

Werden, wie im Beispiel Listbox7, auch Icons im Listview angezeigt sind noch
weitere Funktionen
notwendig, die noch vor dem Erstellen des ListViews durchzuf�hren sind.

- ImageList erstellen
- hinzuf�gen von Icons zur ImageList

nachdem das ListView erstellt wurde:

- zuordnen der ImageList zum ListView

Das anzuzeigende Icon wird gleichzeitig beim �bertragen des Textes zur (ersten)
Spalte einer Zeile
bestimmt.