Hallo,
ich habe eine eigene Komponente entwickelt, die eigene WindowsMessages (mit RegisterWindowMessage) verschickt und diese auch empfangen soll. Da man ein Programm mit dieser Komponente mehrfach starten kann und es auch mehrere Formulare mit der selben Komponente innerhalb der Applikation geben kann, muss die Nachricht mit HWND_Broadcast verschickt werden. Dies tue ich so:
SendNotifyMessage(HWND_BROADCAST,MsgId,Message.WParam,Message.LParam);
Nun kommt diese Nachricht nicht wieder in der WndProc des Controls an. Da ich ja kein schlechtes
DP-Mitglied sein will (
) habe ich natürlich im Forum gesucht und auch herausgefunden, dass alle Messages die über HWND_BROADCAST geschickt werden nur bei Top-Level-Windows ankommen und ich dafür Application.OnMessage nehmen soll.
Gesagt getan, nur leider kommen die Nachrichten dort auch nicht an. Wieder gesucht und als Antwort gefunden, dass es nur mit PostMessage und nicht SendNotifyMessage geht ... Ausprobiert. Stimmt. Allerdings kommt sie dann auch gleich mehrfach an.
Nun kann ich aber PostMessage nicht benutzen und mehrfach will ich die Nachricht auch nicht. Und seit Vista und MainFormOnTaskbar ist mit eigentlich auch nicht mehr ganz klar, welches Formular nun eigentlich Top-Level ist.
Jemand eine Idee wie ich meine Nachricht im Control empfangen kann? Möchte das alles gekapselt haben und nicht in irgendein Formular auslagern müssen ...
Gruß,
Steffen