Zitat Zitat
(Hängt das vielleicht damit zusammen dass der 2te Parameter eine Message ein Long-Parameter ist und deshalb in LONG-Convertiert werden muss? Ist nur so ein Gedanken der mir gerade durch den Kopf schießt).
Genau das ist die richtige Antwort. SendMessage erfuellt hunderte verschiedener Aufgaben, die ganz verschiedene Parameter benoetigen. Dennoch sollen ja nicht fuer jede der Aufgaben verschiedene Funktionen aufgerufen werden muessen, also hat man sich darauf geeinigt einen Datentyp zu verwenden, der prinzipiell jeden anderen Typ aufnehmen koennte. Dafuer kommen allerdings nur zwei Typen in Frage, zum einen ein Zeiger und zum anderen ein Longint, was eigentlich auf das selbe hinauslaeuft, denn ein Zeiger ist nichts anderes, als ein Longint, der als Addresse einer Speicherstelle betrachtet wird. Allerdings werden bei SendMessage sehr haeufig Zahlen vom Typ longint uebergeben, weshalb es sehr aufwendig waere, jedesmal einen Cast von void* auf longint zu machen. Aus diesem Grund hat man sich dazu entschlossen longint zu verwenden. So kann im Prinzip jeder beliebige Wert ausgetauscht werden, sei es nun Strings als Zeiger auf das erste Zeichen des Textes, Strukturen, als Zeiger darauf, oder auch nur einfache Konstanten.

Gruss Ineluki