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.