bestimmte nachrichten in WindowProc()



  • hatte bisher auf die nachrichten WM_NCMOUSEMOVE, WM_NCLBUTTONDOWN und WM_NCLBUTTONUP in der PreTranslateMessage reagiert.

    jetzt will ich auf diese nachrichten in der WindowProc() funtion reagieren, nicht mehr in PreTranslateMessage().

    bei WindowProg kommen diese messages aber nicht unter diesen messages an, sondern unter anderen (habe ich beim testen gemerkt).

    meine fragen:
    1. warum ist das so ?
    2. wie heißen die neuen messages ?



  • Wieso willst du sie in der WindowProc verarbeiten? 😕

    Die PreTranslateMessage ist doch bestens geeignet. So kannst du sie verarbeiten bevor die WindowProc sie bekommt.





  • Der Unterschied ist folgender:

    * Modale Dialogboxen beschränken die Eingaben des Benutzers grundsätzlich auf die Steuerung innerhalb der Dialogbox. Dies wird durch die Deaktivierung des Elternfensters erreicht, sobald die Dialogbox auftaucht. Die Reaktivierung des Elternfensters erfolgt erst, wenn die Dialogbox beendet wird. Dies läßt sich erweitern auf system-modal, wobei auch kein Fenster einer anderen Applikation aktiviert werden kann während die Dialogbox vorhanden ist.

    * Nicht-modale Dialogboxen ähneln mehr "normalen" Fenstern. Sie können vorhanden sein, aber im Hintergrund liegen.

    Heißt, nicht modale Fenster bekommen keine "Window Messages". Diese werden an das Parentfenster weiter geleitet. Das Fenster hast du auch nur um etwas darzustellen, der User sollte keine Interaktion damit führen können. Messages wie OnInitDialog werden dem nicht modalen Fenster schon zugestellt, wie solltest du sonst auch etwas initial auf dem Fester darstellen können. Alles im Konstruktor zu machen ist ein bisschen unschön.

    codeman



  • codeman schrieb:

    Heißt, nicht modale Fenster bekommen keine "Window Messages". Diese werden an das Parentfenster weiter geleitet.

    aso, dann ist alles klar. danke 😉


Anmelden zum Antworten