Win32 API 使用 HWND_BROADCAST 发送消息

Win32 API SendMessage with HWND_BROADCAST

我正在尝试使用 myresult=SendMessage(hWnd,...) 发送消息。据我理解,SendMessage向指定的目标hWnd发送Windows消息;目标的 WndProc return 是一个 long 值;该值由 SendMessage (myresult) return 编辑。到目前为止我说得对吗?

好的,现在如果SendMessage hWnd 是HWND_BROADCAST,它被发送到所有顶层windows。那么 window 的 WndProc 决定了 return 的值?

更新:02-10-20
只是为了澄清我希望做的事情...
我的应用程序由一小群 windows 应用程序组成,这些应用程序需要通过 Windows 消息进行通信。我的计划是广播一条已注册的消息,例如 WM_IDENTIFYMYAPP,并通过响应识别所有兄弟姐妹。这不会因为 Adrian Mole 在回答中解释的原因。

return 值将是从接收的最后一个 windows 开始处理消息和 return; window 这是发送应用程序很难(如果不是不可能)确定的。

一般来说,当你想使用HWND_BROADCAST通知多个windows(或者与一个你没有句柄的window通信),你应该使用(异步)PostMessage 函数(立即 returns)而不是 SendMessage(等待所有接收到的 windows 来处理消息)。

使用(同步)SendMessageHWND_BROADCAST 作为目标可能会导致许多不良影响,如 here on Stack Overflow 所述。但请注意,有些消息无法异步发送(via PostMessage)- WM_COPYDATA 是我所知道的。