VC里面编程,两个窗口类需要互相发送消息。  
这两个类都是基于对话框的类,相互之间没有任何继承、组合、友元的关系。  
现在只能把各自的窗口句柄传递给对方,也可能有API函数,能够在一个窗体类中获得另外 
  
一个窗体的句柄。  
但是以上的方法与C++面向对象的编程宗旨是想违背的。  
我现在想的是通过纯粹的C++方法解决这个问题

解决方案 »

  1.   

    不要教条啊我觉得现在的法子挺好难道你一定要把窗口类的指针存到窗口的extra字段中?
    可是你还是要得到HWND,然后根据HWND得到类指针p,然后p->sendmessage吗?(感觉很脱裤子放P多事啊)
      

  2.   

    可以向主窗口(CMainFrame)发送消息, 主窗口判断消息的来源,然后分发给某个对话框。或者两个对话框相互保存对话框指针,然后通过指针调用类的成员函数,不必发送消息。
      

  3.   

    to:Azusa
    这样还有什么隐藏可言
      

  4.   

    可以在那个类里建一个map容器,键值是对话框的资源ID,内容是对话框的窗口指针。加入添加,删除,遍历并返回窗口指针的函数就可以了。