Avatar billede tommya Nybegynder
27. juni 2007 - 17:30 Der er 1 løsning

Fange messages i VCL komponent

Jeg er igang med at udvikle en VCL komponent der skal fange en message, denne message bliver broadcasted fra en anden process. Jeg har oprettet min message ved hjælp af CreateWindowMessage og kan fint modtage den i mit toplevel vindue.

Jeg vil have komponenten til at modtage min message og helst uden at det kræver anden kode i mit toplevel vindue, end at indsætte komponenten. Mit komponent nedarver fra TWinControl.

Jeg kan ikke bruge BEGIN_MESSAGE_MAP ... da beskeden er oprettet gennem CreateWindowMessage, så istedet har jeg overskrevet WndProc funktionen. Det er her jeg i mit toplevel vindue fint kan modtage beskeden, men det kan jeg ikke fra min komponent. Jeg kunne selvfølgelig broadcast beskeden ud til mit komponent fra toplevel men jeg ønsker at komponentet skal gøre dette uden jeg behøver ændringer i toplevel vinduet.

Er der nogen der kan hjælpe så vil jeg være meget glad. :)
Avatar billede tommya Nybegynder
28. juni 2007 - 14:50 #1
Det lykkedes mig at løse problemet...

Til dem der eventuelt skulle være interesserede eller selv komme til at sidde med problemet. Så blev det løst ved at lave et kald til Application->HookMainWindow og så oprette en funktion WindowHook (følg den dårligt dokumenterede TWindowHook) bool __fastcall WindowHook(TMessage &Msg).
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester