hjbremer hat geschrieben:Ab Vista aufwärts ein Codeschnipsel, den es einzubauen gilt.
Das Codeschnipsel hat nicht unbedingt etwas mit Vista zu tun, denn es läßt sich genauso gut in Windows XP verwenden. Es bewirkt lediglich, dass der Hintergrund einer ausgewählten Zeile genauso dargestellt wird, wie der Hintergrund der Zeile mit der Spaltenbeschriftung. Im Prinzip sorgt der Explorer-Stil dafür, dass in einem aktivierten ListIconGadget die Hervorhebung des Hintergrunds einer selektierten Zeile durch eine kräftigere Farbe deaktiviert wird, d.h. dass die Hintergrundfarbe gleich bleibt, egal ob das ListIconGadget aktiviert ist oder nicht.
Da Windows Vista und 7 standardmäßig ein anderes Theme verwenden als Windows XP, unterscheidet sich natürlich die Darstellung. Hier ein kleines Beispielprogramm, das den Unterschied in zwei Fenstern untereinander anzeigt und von Windows XP an funktioniert:
Code: Alles auswählen
Import "UxTheme.lib"
SetWindowTheme(WindowHandle.I, ClassName.P-Unicode, *CLSIDNameList)
EndImport
OpenWindow(0, 100, 100, 358, 80, "Normales ListIconGadget")
ListIconGadget(0, 5, 5, 370, 70, "Name", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(0, 1, "Address", 250)
AddGadgetItem(0, -1, "Harry Rannit" + #LF$ + "12 Parliament Way, Battle Street, By the Bay")
AddGadgetItem(0, -1, "Ginger Brokeit"+ #LF$ + "130 PureBasic Road, BigTown, CodeCity")
SetGadgetState(0, 1)
OpenWindow(1, 100, 220, 358, 80, "ListIconGadget mit Explorer-Style")
ListIconGadget(1, 5, 5, 370, 70, "Name", 100, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
SetWindowTheme(GadgetID(1), "explorer", 0)
AddGadgetColumn(1, 1, "Address", 250)
AddGadgetItem(1, -1, "Harry Rannit" + #LF$ + "12 Parliament Way, Battle Street, By the Bay")
AddGadgetItem(1, -1, "Ginger Brokeit"+ #LF$ + "130 PureBasic Road, BigTown, CodeCity")
SetGadgetState(1, 1)
SetActiveGadget(0)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow