有3个窗口window1,window2,window3,(创建3个窗口的类相同)有3个类class1,class2,class3,(这3个类类型不相同)如何让window1的消息在class1中处理,window2的消息在class2中处理,window3的消息在class3中处理,1.发送消息,具体应该怎样做?2.有没有其它的方法先谢了

解决方案 »

  1.   

    在windows的消息派发中调用指定的类或发送消息到指定的类
      

  2.   

       这个问题问的不是很清楚,在MFC中一个窗体自然跟一个类相关联的,在这个关联的类中处理窗体的事件的。也就是Window1跟class1相关联,class1处理Window1的事件了。
      

  3.   

    给对应的窗体句柄发送消息... m_hWnd
      

  4.   

    可以使用派生类,例如:创建3个窗口的类相同为class,class1、class2、class3派生自class,在class1、class2、class3中分别重载事件方法,实现多态。
      

  5.   

       这个问题问的不是很清楚,在MFC中一个窗体自然跟一个类相关联的,在这个关联的类中处理窗体的事件的。也就是Window1跟class1相关联,class1处理Window1的事件了。
      

  6.   

    首先消息发送是发送的某个窗体的,如果这个类不与窗体相关联是不行的,原因很简单,没有窗口句柄。可以使用派生类,例如:创建3个窗口的类相同为class,class1、class2、class3派生自class,在class1、class2、class3中分别重载事件方法,实现多态。
      

  7.   

    用派生的方法很简单的,假如你要实现按钮点击事件,你先在Class中实现BtnClick();然后再Class1中也实现BtnClick(),当你用Class1创建一个窗体时,点击按钮事件上是调用class1的BtnClick()函数的。
      

  8.   

    不同的类开Thread,实现消息循环,PostThreadMessage....
      

  9.   

    这个是Windwos SDK结构化编程思路,不适合MFC面向对象的编程方法。
      

  10.   

    如果在窗口类中定义一个指针,用于指向不同的class1,class2,class3,用 runtime class 行不行
      

  11.   

    根据不同的条件 
    if 
      Class *pClass = new Class1;  
    else if
      Class *pClass = new Class2;  
    else
      Class *pClass = new Class3;  
      
      

  12.   

    Class1.SubclassWindow(window1的句柄);