Messages in der MFC



  • Sorry, falls ich jetzt ne dumme Frage stelle, aber ich benutze jetzt zum ersten mal die MFC und hab da ein Problem:
    Normalerweise frage ich die Windows-Messages mit PeekMessage ab und verteile sie gegebenenfalls mit DispatchMessage. Danach kann ich dann noch eigene Sachen machen die nicht Message-orientiert sind, also ständig laufen sollen. Wo mache ich denn sowas in der MFC; da gibts nur BEGINN_MESSAGE_MAP und END_MESSAGE_MAP?



  • So dumm ist die Frage gar nicht 😉

    Was passiert bei Deiner Messageloop, nehmen wir ein Beispiel:

    while( PeekMessage( PM_REMOVE))
    {
      DispatchMessage();
      TueWas();
    }
    

    Diese Messageloop wartet zwar nicht, bis eine Message anliegt, aber sollte eine anliegen, kann erst darauf reagiert werden, wenn TueWas() beendet wurde.

    In der MFC sieht das ganze so aus:

    while( GetMessage())
    {
      DispatchMessage();
    }
    

    Jetzt kann, sollten alle Messagebehandlungsroutinen beendet sein, sofort auf die Nachricht reagiert werden.

    Um nicht message-orientierte Sachen laufen zu lassen, welche immer laufen sollen, verwendet man dann Threads.


Anmelden zum Antworten