Using PeekMessage() Loops in a Dialog BoxLast reviewed: January 5, 1995Article ID: Q74795 |
The information in this article applies to:
When a modal dialog box is created, Windows uses its own message loop, which is stored in USER. If the application takes responsibility for processing messages [using a PeekMessage() loop], then IsDialogMessage() must be used to pass appropriate messages to the dialog box. The following code fragment demonstrates the correct technique:
bFlag = TRUE; while ((bFlag) || (PeekMessage(&message, hDlg, 0, 0, PM_REMOVE))) { if (!IsDialogMessage(hDlg, &message)) { TranslateMessage(&message); DispatchMessage(&message); } }If technique is not used, accelerator keys in the dialog box will not function properly. For additional information on the proper use of PeekMessage() loops, please see the following article(s) in the Microsoft Knowledge Base:
ARTICLE-ID: Q67293 TITLE : Some CTRL Accelerator Keys Conflict with Edit Controls -or- ARTICLE-ID: Q108936 TITLE : Using a Dialog Box as the Main Window of an Application |
Additional reference words: 3.10 3.00
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |