向应用程序的多个实例广播消息






2.19/5 (8投票s)
2004年7月1日

47119

1439
向应用程序的多个实例广播消息
引言
此应用程序描述了如何使用 SendMessageNotify
API 向应用程序的多个实例广播消息。
详细说明
按照以下步骤广播消息:
- 注册消息函数并使用
RegisterWindowMessage
API 获取其 ID。如果注册成功,此函数将返回消息的唯一 ID:UINT WM_MYMESSAGE = RegisterWindowMessage(""OnTestMyMessage"");
- 使用
ON_REGISTERED_MESSAGE
代替ON_MESSAGE
将消息函数添加到消息映射中。BEGIN_MESSAGE_MAP(CTestFindWindowDlg, CDialog) // Use ON_REGISTERED_MESSAGE macro instead of ON_MESSAGE ON_REGISTERED_MESSAGE(WM_MYMESSAGE,OnTestMyMessage) END_MESSAGE_MAP()
- 使用 ::SendNotifyMessage API 广播消息。
BOOL a = ::SendNotifyMessage(HWND_BROADCAST, WM_MYMESSAGE,0,1000);
- 函数声明和定义
// .h afx_msg void OnTestMyMessage(WPARAM wParam,LPARAM lParam); //.cpp void CTestFindWindowDlg::OnTestMyMessage(WPARAM wParam,LPARAM lParam) { int a =(int)lParam; CString strValue; strValue.Format("%d",a); AfxMessageBox("Broadcast :"+strValue); }