ListIconGadget Selection color vom englischen Forum

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

ListIconGadget Selection color vom englischen Forum

Beitrag von hjbremer »

Nubcake hat im englischen Forum nach Vista Feeling fürs Listicongadget gefragt.

Hilfreiche und lehrreiche Antworten mit Codes gab es genügend.

Ab Vista aufwärts ein Codeschnipsel, den es einzubauen gilt.

Code: Alles auswählen

Import "UxTheme.lib"
   SetWindowTheme(hwnd, classname.p-unicode, titlename)
EndImport

ListIconGadget(#list_nr, 0, 0, 0, 0, "", 0, flags)
SetWindowTheme(GadgetID(#list_nr), "explorer", 0)

PS: da ich im englischen Forum mit meinem deutschen Usernamen/Passwort mich nicht anmelden kann, möge doch jemand Nubcake den Codeschnipsel mitteilen
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ListIconGadget Selection color vom englischen Forum

Beitrag von RSBasic »

Interessant, danke. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Re: ListIconGadget Selection color vom englischen Forum

Beitrag von Shardik »

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
Antworten