我是在一个CTreeView里某个消息函数中,用CDialog dlg; dlg.DoModal();来调用模态对话框的。
对话框弹出后,却不响应任何消息,当我在CTreeView中单击,CTreeView却接收得到消息,此后,对话框恢复正常,是什么原因呢?
还有如果我切换一下窗口,比如激活一下别的程序,回来后一切也恢复正常。
盼高手赐教啊!!
多谢!
对话框弹出后,却不响应任何消息,当我在CTreeView中单击,CTreeView却接收得到消息,此后,对话框恢复正常,是什么原因呢?
还有如果我切换一下窗口,比如激活一下别的程序,回来后一切也恢复正常。
盼高手赐教啊!!
多谢!
-----------------------------
这时对话框已经关闭了如何响应消息
由于是局部变量
可能已经释放了
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,但新添加的按钮不能响应
消息,
-----------------------------------
该不是真的没有定义对话框类吧!
我当然自己继承了一个对话框类,是CDlgGet,为了方便我才写CDialog dlg;
实际上,我的CDlgGet现在就是个最简单的About Dialog我的dlg.DoModal()都还没返回,它就能把dlg给释放掉吗?
-----------------------------------
该不是真的真的真的没有定义对话框类吧!??:)
那天下午被抓去做事,没来得及给分
问题解决了,我发现是不能处理鼠标消息,要先ReleaseCapture(),再调dlg.DoModal()