HOWTO: Broadcast Messages Using PostMessage() & SendMessage()

ID: Q64296


The information in this article applies to:
  • Microsoft Windows Software Development Kit (SDK)
  • Microsoft Win32 Software Development Kit (SDK)


SUMMARY

When SendMessage() is used to send a broadcast message (hwnd = 0xFFFF or hwnd = -1), the message is sent to all top-level windows. A message broadcast by PostMessage() is only sent to top-level windows that are visible, enabled, and have no owner.

You might observe the effect of the difference when, for example, the top- level window of your application calls DialogBox() to present a modal dialog box. While the modal dialog box exists, its owner (your top-level window) will be disabled. Messages broadcast using PostMessage() will not reach the top-level window because the window is disabled, and will not reach the dialog box because the dialog box has an owner. Messages broadcast using SendMessage() will reach both the top-level window and the dialog.

In Windows 3.1, PostMessage() will broadcast to invisible and disabled windows just like SendMessage() already does.

Both PostMessage() and SendMessage() actually broadcast using the same broadcast procedure. This procedure does some additional screening to make sure that pop-up menus, the task manager window, and icon title windows are insulated from broadcast messages.

Keywords : kbNTOS kbGrpUser kbWinOS kbWndw kbWndwMsg
Version :
Platform :
Issue type : kbhowto


Last Reviewed: March 5, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.