Il ciclo di messaggi principale di scrittura

Il ciclo di messaggi principale di un'applicazione MDI simile a quello di un'applicazione che non MDI gestisce tasti di scelta rapida. La differenza che il ciclo di messaggi MDI chiama la funzione TranslateMDISysAccel prima controllo per tasti definiti dall'applicazione o prima dell'invio del messaggio.

L'esempio seguente mostra il ciclo di messaggi di una tipica applicazione MDI.

while (GetMessage (amp; msg, (HWND) NULL, 0, 0)) {if (!TranslateMDISysAccel (hwndMDIClient & msg) & &!TranslateAccelerator (hwndFrame, hAccel e msg))
    {TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 
 

La funzione TranslateMDISysAccel traduce messaggi WM_KEYDOWN WM_SYSCOMMAND messaggi e li invia alla finestra figlio MDI attiva. Se il messaggio non un messaggio di acceleratore MDI, la funzione restituisce FALSE, nel qual caso l'applicazione utilizza la funzione TranslateAccelerator per determinare se uno qualsiasi dei tasti definiti dall'applicazione erano premuto. In caso contrario, il loop invia il messaggio alla procedura appropriata finestra.