Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

03.04.2005, 16:21

Probleme mit PostMessage

Ich möchte mit der Funktion PostMessage() eine Nachricht an ein Fenster senden.

C-/C++-Quelltext

1
PostMessage(Window, KEY_ANAG_CHANGED, i, i);

Wenn ich jetzt allerdings in meinem Windowhandler eine angekommene Message auf KEY_ANAG_CHANGED prüfe, ist sie es nicht und auch die Funktion PostMessage() gibt mir den wert false zurück. Hat jemand eine Idee, woran das liegen könnte?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

03.04.2005, 16:33

Zitat von »"msdn"«

The PostMessage function places (posts) a message in the message queue associated with the thread that created the specified window and then returns without waiting for the thread to process the message...


d.h. die message kommt in die queue und da können vorher noch etliche andere messages ( WM_MOSEMOVE etc. ) drin sein.

wenn du direkt einem fenster eine nachricht senden willst, solltest du SendMessage verwenden...

3

03.04.2005, 18:52

Zuersteinmal danke für die schnelle Antwort. Ich hab mir jetzt mal die Remarks in der Hilfe zu der Funktion und festgestellt, das nur Systemnachrichten gesendet werden. Scheiße also. Kennt jemand eine Funktion, um eine selbst definierte Nachricht zu senden?

PD

unregistriert

4

03.04.2005, 22:01

Naja, die Nachrichten sind afaik nichts anderes als defines. Wenn du weißt im welchem Bereich die liegen (ich weiß es nicht) dann könntest du deine eigenen defines danach einreihen... sonst fällt mir dazu grad auch nix spontanes ein

5

04.04.2005, 00:25

auszug aus winuser.h: zeile 2110

C-/C++-Quelltext

1
2
3
4
5
6
/*
 * NOTE: All Message Numbers below 0x0400 are RESERVED.
 *
 * Private Window Messages Start Here:
 */
#define WM_USER                         0x0400

6

04.04.2005, 13:36

Also, ich hab das jetzt so probiert, dass ich die Defines für meine Nachrichten ab WM_USER gemacht hab und siehe da - es funktioniert. Früher hab ich für die Defines halt irgendwelche anderen Zahlen benutzt, womit die Funktion offenbar nicht klarkam.

PD

unregistriert

7

04.04.2005, 15:10

naja, das problem war wohl das du dann deine Nachricht geschickt hast und das prog dachte dann es wärn WM_PAINT oder so... nur hatte es dann vielleicht die falschen wParam oder lParam werte ^^

8

04.04.2005, 15:17

Nene, die Nachricht war schon auch ne Menge über WM_USER...

Werbeanzeige