Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Workshops / SubClassing / Grundlagen

Grundlagen und Begriffe

Alle in Windows existierenden Objekte kommunizieren miteinander über sogenannte "Messages" (Nachrichten). Wenn z.B. ein Anwender mit der Maus die Größe eines Formulars verändert, so schickt Windows Nachrichten an dieses Formular ("Wie klein darf ich dich machen?" bzw. "Achtung, deine Größe wird geändert!"). Dadurch wiederum werden u.U. viele andere Nachrichten ausgelöst: Das Formular sendet eine Nachricht an sich selbst und die darauf befindenen Controls ("Achtung, ihr müßt euch neu zeichnen!"), an andere Formulare ("Achtung, ihr seid gerade von mir überdeckt worden!"), etc. pp.

In VB werden solche Nachrichten (teilweise) als Ereignisse zur Verfügung gestellt, z.B. wird Form_Resize bei der Änderung der Größe eines Formulars aufgerufen und Form_Paint, wenn ein Formular sich neu zeichnen muß.

Leider werden nicht alle Nachrichten derart weitergereicht. Z.B. wird von Windows zwar eine Nachricht ausgelöst, wenn ein Formular verschoben wird, allerdings gibt es in VB kein äquivalentes Ereignis Form_Move (oder ähnliches).

Hier kommt nun das sogenannte SubClassing ins Spiel: Unter SubClassing versteht man eine Technik, bei der man (wie ein Spion) sich in die "Nachrichtenleitung" von Windows dazwischenklemmt, so daß man alle Nachrichten empfängt. Man spricht in diesem Zusammenhang übrigens auch von einem Message Hook, also "Nachrichten-Haken". So könnte man dann auch auf Nachrichten reagieren, welche eigentlich nicht von VB unterstützt werden. Es ist sogar möglich, empfangene Nachrichten zu modifizieren, bevor sie auf der Nachrichtenleitung weitergeleitet werden oder bestimmte Nachrichten gar ganz zu entfernen (also die Leitung zu "kappen").
...>>

© Jost Schwider, 29.04.2000-30.04.2000 - http://vb-tec.de/subclas1.htm