Procedura fereastra pentru o fereastră de cadru MDI este similară cu cea a ferestrei principale a aplicației non-MDI. Diferența este că un cadru fereastra procedură trece toate mesajele se ocupa nu la funcția de DefFrameProc , mai degrabă decât la funcția de DefWindowProc . În plus, procedura fereastra cadru trebuie să treacă, de asemenea, unele mesaje care se ocupa, inclusiv cele enumerate în tabelul următor.
| Mesaj | Răspuns |
|---|---|
| WM_COMMAND | Activează fereastra copil MDI care utilizatorul alege. Acest mesaj se trimite atunci când utilizatorul alege o fereastră de copil MDI din meniul fereastră a ferestrei MDI cadru. Identificatorul de fereastra care însoțește acest mesaj identifică fereastra copil MDI a fi activat. |
| WM_MENUCHAR | Se deschide din meniul fereastră a MDI copil ferestrei active atunci când utilizatorul apasă alt +-(minus) combinația de taste. |
| WM_SETFOCUS | Trece tastatură focalizarea la fereastra de client MDI, care la rândul său trece-l la fereastra copil MDI active. |
| WM_SIZE | Redimensionează ferestrei MDI client pentru a se potrivi în fereastră nouă pentru cadru client zona. Dacă procedura cadru fereastra Dimensiuni ferestrei MDI client la o altă dimensiune, nu ar trebui să se treacă la mesajul la funcția de DefWindowProc. |
Cadru fereastra procedura în Multipad este numit MPFrameWndProc. Manipularea alte mesaje de MPFrameWndProc este similar cu cel de aplicații non-MDI. WM_COMMAND mesajele în Multipad sunt manipulate de funcția CommandHandler definite local. Pentru mesajele de comandă nu ocupa de Multipad, CommandHandler apelează funcția DefFrameProc . Dacă Multipad nu utilizați DefFrameProc implicit, utilizatorul nu poate activa o fereastra copil din meniul fereastră , deoarece WM_COMMAND mesajul trimis făcând clic pe elementul de meniu a ferestrei ar fi pierdut.