Postmessage : Was als wParam und Lparam verwenden ?
-
Hallo, ich spiele gerade ein wenig mit der Winapi rum und wollte, zu testzwecken, ein Fenster erstellen, das, wenn die Linke Maustaste gedrückt wird, an sich selbst die Nachricht WM_DESTROY schickt.
Die Nachricht wollte ich so verschicken :
//WndProc von hwnd switch (msg) { case WM_LBUTTONDOWN : PostMessage(hwnd,WM_DESTROY,wParam,lParam); case WM_DESTROY : PostQuitMessage(0); }Ich weiß , dass der Code keinen Sinn hat, ich wollte mich nur mal an der Funktion PostMessage versuchen. Aber ich hab keine Ahnung, was ich als wParam und lParam angeben muss. Kann mir da jemand helfen ?
-
wParam
This parameter is not used.
lParam
This parameter is not used.Also egal was du willst. Aber nicht das du das wirklich in deiner Anwendung benutzt. Dafür gibt es DestroyWindow.
-
Wie ich schon sagte, ich habe das ganze nur gecodet, um den umgang mit PostMessage zu erlernen. Das Programm funktioniert leider nicht, ich glaube mein Fehler liegt an der Postmessagefunktion, was könnte ich da falsch gemacht haben ?
-
Ganz sicher nicht, PostMessage wird von zig Programmen benutzt. Der Fehler liegt bei dir.
Bye, TGGC (NP Intelligenz)
-
Ich weiß, dass der Fehler bei mir und in meinem Code liegt. Aber ich kann ihn nicht entdecken.
Wenn ich das Ganze ohne den Umweg über Postmessage mache, sondern direkt auf WM_LBUTTONDOWN mit PostQuitMessage reagiere, dann klappt es auch.
Also muss der Fehler ja in der Funktion PostMessage liegen.
-
Das Programm funktioniert leider nicht
Das heißt?
-
Mit PostMessage() postest du eine Nachricht in die Warteschlange (ähnlich wie im Forum) diese Nachricht wird erst verarbeitet wenn der Empfänger diese Nachricht aufruft (das forum besucht), dies macht der Empfänger entweder mit GetMessage() oder PeekMessage().
Wenn du das so machst, mußt du in deiner MessageLoop, in der ja ein von beiden sitzt, diese Nachricht abfragen und verarbeiten.
Wenn du aber nicht warten willst bis der Empfänger zum Forum kommt, so mußt du ihm ne mail schreiben, also du mußt die Nachricht senden ala SendMessage().
-
Hoffentlich verwirrt ihn das nicht.

-
verwirrter schrieb:
Hoffentlich verwirrt ihn das nicht.

Ich hoffe doch, vieleicht greift er dann zur MSDN Waffe.
-
aber geile erklährung

-
imson schrieb:
Wenn ich das Ganze ohne den Umweg über Postmessage mache, sondern direkt auf WM_LBUTTONDOWN mit PostQuitMessage reagiere, dann klappt es auch.
Also muss der Fehler ja in der Funktion PostMessage liegen.ich schätze mal PostQuitMessage sendet 'WM_QUIT' und nicht 'WM_DESTROY'