Eigene Kompos und Scrollbars
-
Hi mal wieder,
ich hab ne Kompo von TWinControl abgeleitet und würde der gerne ein paar Scrollbalken verpassen. Da das wahrscheinlich nur mit API gehen wird hab ich im Konstruktor Der Kompo folgendes versucht:
SetWindowLong(Handle, GWL_STYLE, WS_VSCROLL);Wenn ich die Kompo jetzt auf ein Formular ziehe, kommt folgende Fehlermeldung:
"Element '' hat kein übergeordnetes Fenster."
Hört sich an, als hätte die Kompo noch kein Handle bekommen.
Wo soll ich die Funktion denn sonst aufrufen?
Oder liege ich mit meinen Versuchen ganz falsch?
-
Sorry, mein Fehler.
Schon klar, ich muss das ganze in der CreateWnd() machen und Die vorherigen values berücksichtigen:
inherited::CreateWnd(); SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) | WS_VSCROLL);Mann sieht jetzt aber die ScrollBars erst, wenn z.B. die Größe der Kompo 1 mal verändert wurde. Es sieht also so aus, als würde zunächst nur die geerbte CreateWnd aufgerufen. Ich hab nun versucht, CreateWnd im Ctor aufzurufen, das führ aber wieder zu der bekannten Fehlermeldung "Element '' hat kein übergeordnetes Fenster.".
Wo muss ich CreateWnd aufrufen?
-
Muss man dazu nicht CreateParams() überschreiben? Bin mir nicht sicher, ob das bei Komponenten ebenfalls so funktioniert, aber schau Dir mal folgendes an:
http://www.bcbdev.com/faqs/faq9.htm
http://www.bcbdev.com/faqs/faq10.htmGrüße
-
Jo so klappt's, Danke!