我是在一个CTreeView里某个消息函数中,用CDialog dlg; dlg.DoModal();来调用模态对话框的。
对话框弹出后,却不响应任何消息,当我在CTreeView中单击,CTreeView却接收得到消息,此后,对话框恢复正常,是什么原因呢?
还有如果我切换一下窗口,比如激活一下别的程序,回来后一切也恢复正常。
盼高手赐教啊!!
多谢!

解决方案 »

  1.   

    我是在一个CTreeView里某个消息函数中,用CDialog dlg; dlg.DoModal();来调用模态对话框的。当我在CTreeView中单击
    -----------------------------
    这时对话框已经关闭了如何响应消息
    由于是局部变量
    可能已经释放了
      

  2.   

    CDialog dlg; ==> 你没有自定义类??
      

  3.   

    以前用CCoolBar的那个程序时会出现问题
    BOOL CMyDialog::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
    {
    return TRUE;
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
    虽然看起来这句话仅是简单的一句屏蔽回车键
    以前用模板对话框时也出现这种问题,能响应OnOK,OnCancel,但新添加的按钮不能响应
    消息,
      

  4.   

    CDialog dlg; dlg.DoModal();
    -----------------------------------
    该不是真的没有定义对话框类吧!
      

  5.   

    这么快就有这多人回复啊,多谢
    我当然自己继承了一个对话框类,是CDlgGet,为了方便我才写CDialog dlg;
    实际上,我的CDlgGet现在就是个最简单的About Dialog我的dlg.DoModal()都还没返回,它就能把dlg给释放掉吗?
      

  6.   

    CDialog dlg; dlg.DoModal();
    -----------------------------------
    该不是真的真的真的没有定义对话框类吧!??:)
      

  7.   

    我去试试zhaogaojian(米柑年成) 的办法,如成功马上就给分,先谢谢
      

  8.   

    你的不响应消息是:按钮单击不响应,还是用SendMessage()不支持
      

  9.   

    多谢大家
    那天下午被抓去做事,没来得及给分
    问题解决了,我发现是不能处理鼠标消息,要先ReleaseCapture(),再调dlg.DoModal()