Nachrichten "selbst" fangen



  • Hallo,
    ich habe eine kurze Frage bezüglich der Nachrichtenverarbeitung in WinAPI-basierten Programmen. Ist es möglich, die vorgesetzte Nachrichtenlogik - in Form der WindowProc-Methode u.ä - zu umgehen und sich direkt die Nachrichten aus der "globalen" Windows-Message-Queue liefern zu lassen? Der Grund ist, dass ich für eine kleine GUI-Lib gerne die betriebssystemspezifische Nachrichtenverarbeitungslogik kapseln möchte, was aufgrund der ziemlich starren Logik des Nachrichtenverarbeitungsmodells meistens nicht elegant gelingt 😃 Gibt es hier einen Weg, noch tiefer anzusetzen, oder ist dies alles, was dem WinAPI-Programmierer diesbezüglich zur Verfügung steht?


  • Mod

    Es gibt keinen tieferen Ansatz.
    1. Nur Input/Nachriczhten (Maus/Tastatur) kommen über die Message Queueu
    2. Die Abfrage der Messagequeue erzeugt wichtige "Pseudo Nachrichten" wie WM_PAINT, WM_TIMER etc.
    3. Der gesamte COM Ansatz und viele der wichtigen Systemhooks setzen auch in GetMessage an.

    Du wirst an GetMessage/TranslateMessage/DispatchMessage nicht drum herum kommen, außr Du baust eben eine Consolen Anwendung 🕶



  • Du kannst mit PeekMessage statt GetMessage ggfs. Nachrichten ausfiltern. Viel mehr ist nicht drin.


  • Mod

    Jo. Und dann peeked jeder mal so für sich durch die Gegend und nimmt sich die nachricten die er möchte wann er will...

    Na viel Spaß beim Debuggen dieser UI... 🕶



  • Vielen Dank für die Antworten. Anscheinend werd ich mich mit GetMessage und Konsorten zufrieden geben müssen. 😃


Anmelden zum Antworten