65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.19/5 (8投票s)

2004年7月1日

viewsIcon

47119

downloadIcon

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);
    }
© . All rights reserved.