SendMessage和PostMessage的说明里都有这句:The system only does marshalling for system messages (those in the range 0 to WM_USER). To send other messages (those above WM_USER) to another process, you must do custom marshalling. 

解决方案 »

  1.   

    即我想知道"marshalling"在这里代表什么操作。
      

  2.   

    看过<<集结号>>吗? 这里特指系统能够处理的消息集合, 范围从0到WM_USER(those in the range 0 to WM_USER), 
    如果你要发送大于WM_USER的消息, 用定制处理的办法, 像MFC中, 定义ON_MESSAGE宏.
      

  3.   

    marshalling一般代表把一组数据从一个进程传到另一个进程,并且封装这种操作以使得两边都能直接拿数据来用而不用管通信细节。不过在这儿似乎不是这个意思,因为WM_USER以上和以下处理方式应该都是相同的。
      

  4.   


    如果就是指自己添加代码来接收并处理消息(定义ON_MESSAGE宏),为什么非要加上“to another process”这个说明?就算我发给本线程本窗口,不还是要自己添加代码吗。
      

  5.   

    sorry, 我理解得不完全正确, 我想, MSDN的意思是在进程中只能传递系统消息, 范围在(0, WM_USER)之间, 如果要传递非系统消息,
    就要自已做一个消息机制, 一个好的办法是:Applications that need to communicate using HWND_BROADCAST should use the RegisterWindowMessage function to obtain a unique message for inter-application communication.