Writing the Main Message Loop
The main message loop of an MDI application is similar to that of a non-MDI
application handling accelerator keys. The difference is that the MDI message
loop calls the
TranslateMDISysAccel function before checking for application-defined accelerator keys or before
dispatching the message.
The following example shows the message loop of a typical MDI application.
while (GetMessage(&msg, (HWND) NULL, 0, 0))
{
if (!TranslateMDISysAccel(hwndMDIClient, &msg) &&
!TranslateAccelerator(hwndFrame, hAccel, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
The
TranslateMDISysAccel function translates
WM_KEYDOWN messages into
WM_SYSCOMMAND messages and sends them to the active MDI child window. If the message is not
an MDI accelerator message, the function returns FALSE, in which case the
application uses the
TranslateAccelerator function to determine whether any of the application-defined accelerator keys
were pressed. If not, the loop dispatches the message to the appropriate
window procedure.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database