有一个基于对话框的应用程序,它本身有事情做, 它也要接收其它应用程序发来的消息,这个消息处理应如何加呢?

解决方案 »

  1.   

    不知道楼主要哪种方式1. 假设本程序为A,B要给A发消息,先找A的窗口句柄FindWindow,之后利用SendMessage或PostMessage向这个窗口发吧,两边都定义一个同样的消息#define WM_COMMON_MESSAGE WM_USER + 2009A写一个处理此消息的处理函数即可。如 afx_msg LRESULT OnCommonMessage(WPARAM wParam,LPARAM lParam);在里面处理。2.如果没有数据需要传输,可以利用全局内核同步对象,比如创建有名的事件对象CreateEvent(x,x,x,"CommonEventName"),A和B通过此对象来通知对方某些事件已发生3.如果有数据,那就加上内存映射文件CreateFileMapping再配合2所说的同步对象,就可以很方便的实现交互和数据传送。
      

  2.   

    baidu google搜 
    进程间通信
      

  3.   

    我想理顺这些关系。A B都定义了消息,A定义了消息处理函数.
    B要给A发消息, A收到消息,就执行消息的处理函数(在函数中启动一个东西或切换一个界面).1. A中要不要引入线程等. (我认为不引入也可以,程序效率也不会低。)2. A和B中要用事件进行同步或通讯时(A要通知B时),A应要有线程,线程中用WaitForSingleObject --> 处理事件.我的理解对不对?
      

  4.   

    VC++中进程间相互通信的十一种方法
    http://blog.csdn.net/DavidHsing/archive/2007/09/04/1771737.aspx