Hintergrund von Listbox bzw. Fenster
-
Hallo !
Ich komm nicht dahinter wie man den Hintergrund einer Listbox ändert, mit SetBkColor() funktioniert es nicht, ich will eine Listbox mit dem selben Hintergrund wie das ParentFenster.
Benutze nur die reine Winapi.
-
Evtl gibt's nen einfacheren Weg, aber du könntest für deine Listview eine eigene WindowClass angeben (RegisterClassEx), der du die WndProc von der original-ListView-Klasse übergibst (GetClassLong(GCL_WNDPROC)). In deiner WindowClass setzt du dann halt deinen gewünschten Background-Brush..
edit: Oder, was ein sichererer Weg ist: Du setzt deine eigene WndProc und überschreibst darin die WM_ERASEBKGND-Nachricht. Für den Rest der Nachrichten natürlich die Original-WndProc der Listview aufrufen.
-
Ja, daran hab ich auch schon gedacht, aber ich dachte es gibt vielleicht einen einfacheren Weg, ohne extra eine WNDCLASS zu registrieren.
Ist das nicht etwas Umständlich wenn man für jedes HWND eine Klasse reg. muss?? Immerhn werden das doch ziemlich viele HWND's.
Ich frage auch weil ich noch nicht lange mit der WINAPI GUI Programmierung vertarut bin.
-
Für das, was ich bei mir im edit geschrieben hab, brauchst du keine extra Fensterklasse registrieren
Die WndProc kannst du einfach für ein einzelnes Fenster mit SetWindowLong setzen. Für den Hintergrund geht das leider nicht so einfach, den kannst du zwar mit SetClassLong setzen, damit ändert sich dann aber der Hintergrund jeder Listview im System, worüber sich Anwender wohl ärgern dürften 
-
Danke
werds mal so ausprobieren