Skrive meldingsløkke Main

Hovedmeldingsløkke i en MDI søknad er ligner på et ikke-MDI søknad håndtering hurtigtastene. Forskjellen er at meldingsløkke MDI kaller funksjonen TranslateMDISysAccel før du kontrollerer for programdefinert hurtigtastene eller før du sender meldingen.

Følgende eksempel viser meldingsløkke på en typisk MDI-program.

mens (GetMessage (amp; msg, (HWND) NULL, 0, 0)) {hvis (!TranslateMDISysAccel (hwndMDIClient & msg) & &!TranslateAccelerator (hwndFrame, hAccel og msg))
    {TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } 
} 

 

Funksjonen TranslateMDISysAccel oversetter WM_KEYDOWN meldinger til WM_SYSCOMMAND meldinger og sender dem til det aktive underordnet MDI-vinduet. Hvis meldingen ikke er en MDI accelerator melding, returnerer funksjonen USANN, i hvilket rettssak programmet brukes TranslateAccelerator -funksjonen til å finne ut om noen av tastene program-definerte gasspedalen ble trykket. Hvis ikke, loopen sender meldingen til den riktige vindusprosedyre.