Die Main-Meldungsschleife schreiben

Die Hauptnachrichtenschleife einer MDI-Anwendung ähnelt der einer nicht-MDI-Anwendung, die Handhabung von Zugriffstasten. Der Unterschied ist, dass die MDI-Meldungsschleife vor der Überprüfung für die Anwendung definierten Zugriffstasten oder vor dem Weiterleiten der Nachricht die TranslateMDISysAccel -Funktion aufruft.

Das folgende Beispiel zeigt die Nachrichtenschleife einer typischen MDI-Anwendung.

while (GetMessage (Amp; msg, (HWND) NULL, 0, 0)) {if (!TranslateMDISysAccel (HwndMDIClient, & msg) & &!TranslateAccelerator (HwndFrame, hAccel & msg))
    {TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 

 

Die TranslateMDISysAccel -Funktion übersetzt WM_KEYDOWN Nachrichten in WM_SYSCOMMAND -Nachrichten und sendet sie an das aktive untergeordnete MDI-Fenster. Wenn die Nachricht kein MDI-Beschleuniger-Nachricht ist, gibt die Funktion FALSE, in diesem Fall die Anwendung die TranslateAccelerator -Funktion verwendet, um bestimmen, ob eine von der Anwendung definierten Zugriffstasten gedrückt wurden. Wenn nicht, die Schleife sendet die Meldung an das entsprechende Fenster-Verfahren.