[Delphi] Non-VCL-Window

Hallo. Hab mich schon wieder in einem Problem festgefahren…
Ich erzeuge eine Listbox mit CreateWindowEx und möchte ihrem Standardverhalten ein paar Dinge hinzufügen. Dazu habe ich mit

SetWindowLong(ListBoxHandle,GWL_WNDPROC,Integer(@ListboxWindowProc));

den WNDPROC-Zeiger auf meine WindowProc gebogen:

function ListboxWindowProc(hWin, Msg, wMessage, lMessage: LongInt): LongInt; stdcall;

Die wird auch ordnungsgemäß aufgerufen. Darin rufe ich die Standard-Proc auf mit

Result := DefWindowProc(hWin, Msg, wMessage, lMessage);

Das sollte doch eigentlich dafür sorgen, daß sich die Listbox wie eine ganz normale Listbox verhält.

Mein Problem: das tut sie nicht. Der Rand wird gezeichnet, nicht aber der Clientbereich. Eine WM_Paint - Botschaft erhält sie.
Sie erhält keine WM_DrawItem - Botschaft, unabhängig davon, ob LBS_Ownerdraw gesetzt ist oder nicht.

Wenn ich SetWindowLong NICHT aufrufe, verhält sie sich wie eine Standard-Listbox.

Dankbar für jeden Tipp, ich kenn mich mit der Non-VCL-Programmierung nicht aus, hab kein Buch dazu und die Online-Hilfe ist besch…

Jochen