大家好啊,我在一个模态对话框中,嵌套了一个非模态对话框,然后分别为这两个对话框各创建一个类。在非模态对话框中,我添加了几个按钮,并添加了相应的事件处理程序,但无论我怎么点击按钮,非模态对话框中按钮的事件处理程序都是没有执行。在网上搜索,非模态对话框与它的父窗口共用一个消息循环,但我该怎么分发来自非模板窗口的消息呢,让事件处理程序得到响应!今天查了一下午的资料,都没有结果,累呀!!!

解决方案 »

  1.   

    是不是要声明另外一个消息映射 ,指明你的非模式窗口中的消息处理函数啊
    DECLARE_MESSAGE_MAP(CMyWnd,CFrameWnd)
    //消息处理函数
    //消息处理函数
    END_MESSAGE_MAP()
      

  2.   

    自己调试出来了,我的代码大概是这样的:
    //模态对话框
    class CParameterDlg : public CDialog
    {
    //省略其它代码
    CDialog* m_pDlg;
    };// 非模态对话框类
    CParameterAdvanceDlg原来CParameterDlg 中的m_pDlg成员使用了CDialog类,正确应该使用CParameterAdvanceDlg,而事件处理程序在CParameterAdvanceDlg中,不是在CDialog中,
    由于多态使用不当,导致CDialog不会调用CParameterAdvanceDlg中的方法,所以CParameterAdvanceDlg中的事件处理程序无法进行!哈哈,依然感谢大家!