Die Fensterprozedur für ein MDI-Rahmenfenster ist ähnlich wie ein nicht-MDI-Anwendung im Hauptfenster. Der Unterschied ist, dass eine Frame-Fensterprozedur übergibt alle Nachrichten, die es nicht an die DefFrameProc -Funktion, anstatt die DefWindowProc -Funktion verarbeitet. Darüber hinaus muss die Frame-Fensterprozedur auch einige Nachrichten übergeben, die es handhabt, einschließlich der in der folgenden Tabelle aufgeführten,.
| Nachricht | Antwort |
|---|---|
| WM_COMMAND | Aktiviert das untergeordnete MDI-Fenster, das der Benutzer auswählt. Diese Nachricht wird gesendet, wenn der Benutzer ein untergeordnetes MDI-Fenster aus dem Menü Fenster von MDI-Rahmenfenster. Der Fenster-Bezeichner begleiten diese Nachricht identifiziert das untergeordnete MDI-Fenster aktiviert werden. |
| WM_MENUCHAR | Öffnet das Fenstermenü für das aktive untergeordnete MDI-Fenster wenn der Benutzer die Alt drückt +-(minus) Tastenkombination. |
| WM_SETFOCUS | Übergibt den Tastaturfokus auf das MDI-Client-Fenster, das wiederum an das aktive untergeordnete MDI-Fenster wird. |
| WM_SIZE | Das MDI-Client-Fenster in den neuen Frame Clientbereich des Fensters passt die Größe ändert. Wenn die Frame-Fensterprozedur das MDI-Client-Fenster mit einer anderen Größe Größen, sollte es nicht die Nachricht an die DefWindowProc -Funktion übergeben. |
Das Frame-Fenster-Verfahren in Multipad wird MPFrameWndProc genannt. Der Umgang mit anderen Nachrichten von MPFrameWndProc ähnelt der von nicht-MDI-Anwendungen. WM_COMMAND Nachrichten in Multipad werden durch die lokal definierten CommandHandler Funktion behandelt. CommandHandler fordert Befehlsmeldungen, die Multipad nicht verarbeitet, die DefFrameProc -Funktion. Wenn Multipad DefFrameProc standardmäßig nicht verwendet, kann der Benutzer ein untergeordnetes Fenster über das Menü Fenster aktivieren, da die WM_COMMAND-Nachricht gesendet, indem das Fenster Menüelement verloren gehen würden.