Seite 1 von 1
Sendmessage empfangen
Verfasst: 3. November 2009 00:27
von dragon476
Hi,
ich versuche mittels dem QT-Creator ein Programm zu schreiben, das auf Window-Messages reagiert. Doch leider passiert nichts. Beim kompilieren gibt es keine Probleme, aber das Programm reagiert nicht auf die Nachrichten.
Mein Code mit dem ich es probiert habe:
Code: Alles auswählen
LRESULT CALLBACK MsgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_PAINT:
...
break;
}}
mfG Maddin
Verfasst: 3. November 2009 06:29
von Christian81
Und wie rufst du MsgProc auf?
Und warum brauchst du das überhaupt?
Verfasst: 3. November 2009 06:59
von dragon476
Hi,
in den Beispielen die ich gefunden habe, gingen die windows Nachrichten direkt an diese Prozedur. Wenn dies funktioniert, wollte ich auf Wm_copydata reagieren um von einer anderen anwendung mit sendmessage einen string an diese anwendung zu schicken
MfG
Verfasst: 3. November 2009 07:11
von Christian81
Eine Funktion muss aufgerufen werden sonst kann sie auch nicht ausgeführt werden...
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Und was soll das mit Qt zu tun haben?
Verfasst: 3. November 2009 07:43
von macman
@dragon476: Ich hoffe Du hast deine eigene Application-Klasse, abgeleitet von QApplication, sonst wird das nichts. Dann brauchst Du nur winEventFilter( MSG* msg, long* l ) implementieren und es fluppt.
@Christian81: Sein Beispiel mit WM_PAINT ist Unfug, aber es gibt so einige Messages, die man eventuell mitbekommen möchte. WM_QUERYENDSESSION, WM_ENDSESSION oder WM_DEVICECHANGE, um nur mal einige zu nennen.
Verfasst: 3. November 2009 07:45
von Christian81
Ich weiß - aber sein Beispiel zeigt dies nicht auf und es sieht so aus als möchte er WM_PAINT implementiere.
Und Sessions handelt man über QSessionManager
![Wink ;)](./images/smilies/icon_e_wink.gif)
Verfasst: 3. November 2009 21:54
von dragon476
Okay, sollte sich eigentlich auf WM_COPYDATA beziehen,sry
Also nachdem ich jetzt eine eigene Klasse von QApplication abgeleitet habe, kann das Programm auch Sendmessages empfangen. Nur wie bekomme ich jetzt den Inhalt in meine andere Klasse?
Code: Alles auswählen
int main(int argc, char *argv[])
{
EventFilter a(argc, argv); //Hier ist der winEventFilter drin (von QApplication abgeleitet)
reader w; //Hier drin soll der Inhalt der Nachricht verarbeitet werden (von QMainWindow abgeleitet)
w.show();
return a.exec();
}
[quote][/quote]
Verfasst: 4. November 2009 10:30
von macman
Eigenes Signal verschicken.