我的程序步骤如下:
1、让A程序给B程序(SDI)发消息(确认消息发送成功)
2、(随便在B的一个dialog或者Minframe或者App.....X里)添加消息处理 
0nMyMsg(WPARAM wParam, LPARAM lParam);
{}
3、在X.h添加声明afx_msg void 0nMyMsg(WPARAM wParam, LPARAM lParam);
4、在X.cpp中消息映射到消息处理函数中:
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
5、我没有收到消息!!!问题:是不是因为消息带有一定的目的地信息?我需要怎么做

解决方案 »

  1.   

    当然我的WM_MY_MESSAGE定义
    #define WM_MY_MESSAGE(WM_APP+101)在某个所有文件都可以调用的.h里了
      

  2.   

    自定义消息不是WM_USER吗?你是在两个进程间传递消息阿?那我可不会,没试过!Up gz 学习
      

  3.   

    你去看MSDN上面的文章,上面说自定义消息只能是WM_USER例子:
    #define WM_MYMESSAGE  (WM_USER + 100)afx_msg LRESULT 0nMyMsg(WPARAM wParam, LPARAM lParam);
    ON_MESSAGE(WM_MYMESSAGE, 0nMyMsg)我怎么看你的两个函数不一样呢???0nMyMsg  与   OnMyMessage?????不会说是这个原因吧!!!
      

  4.   

    0nMyMsg  与   OnMyMessage,我贴错了,是同一个函数至于的WM_APP的事情是可以这样的,这样就可以在进程中传了
      

  5.   

    在两个程序中写入:
    const UINT    wm_Find = RegisterWindowMessage( "my global message )
    BEGIN_MESSAGE_MAP( CMyWnd, CMyParentWndClass ) //一定要用主窗口来接收
        //{{AFX_MSG_MAP( CMyWnd )
        ON_REGISTERED_MESSAGE( wm_Find, OnFind )
        // ... Possibly more entries to handle additional messages
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP( )在接收端写入消息声明:
    afx_msg void OnFind(WPARAM wParam,LPARAM lParam);
    发送端写入:
    ::PostMessage(HWND_BROADCAST,wm_Find,0,0);
      

  6.   

    所有的消息都必须由主窗口接收么?
    那SDI中怎么办?怎样确定某个消息是否是窗口消息?
      

  7.   

    1.我是说用RegisterWindowsMessage()的消息就要用主窗口来接收。
      

  8.   

    那我去看一下,不过SDI怎么办呢?
      

  9.   

    到是没有RegisterWindowsMessage()
    不过发消息是用这个
    ::PostMessage(pApp->m_hWnd,WM_RECVBAG,802,nNO) ;
    是不是就是需要用特定的接受,比如窗口