[Delphi] Non-VCL-Window

Von: , Frage gestellt am Fr, 16. Jun 2000

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

0 Antworten zu dieser Frage

    Keine passende Antwort gefunden? Jetzt eigene Frage stellen!