Scris la bucla principală de mesaj

Bucla de mesajul principal de o cerere de MDI este similară cu cea a unei aplicații non-MDI accelerator chei de manipulare. Diferența este că bucla de mesaj MDI apeluri funcția TranslateMDISysAccel înainte de a verifica pentru aplicarea-definite accelerator chei sau înainte de expediere mesaj.

Următorul exemplu arată bucla mesaj de o aplicație tipică de MDI.

în timp ce (GetMessage (amp; msg, NULL (HWND), 0, 0)) {dacă (!TranslateMDISysAccel (hwndMDIClient, & msg) & &!TranslateAccelerator (hwndFrame, hAccel & msg))
    {TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 

 

Funcția TranslateMDISysAccel traduce WM_KEYDOWN mesajele în mesaje WM_SYSCOMMAND și trimite-le la fereastra copil MDI active. Dacă mesajul nu este un mesaj de accelera?ie MDI, funcția întoarce FALSE, în care caz aplicația utilizează funcția TranslateAccelerator pentru a determina dacă oricare din tastele de aplicare-definită accelerator au fost presate. Dacă nu, bucla expedieri mesajul procedura corespunzătoare fereastra.