ESC键为何不响应对话框关闭却清空对话框中的一个ListBox? 最近做一个对话框的程序,对话框中包含两个ListBox,并且在启动对话框的时候自动载入若干从文件中读取的列表项,可是在打开对话框串口后,按ESC键,窗口没有关闭反而是其中的一个ListBox被清空了,不知道是什么原因.另外,程序只重载了一个与ESC按键无关的VK_RETURN事件在PreTranslateMessage中. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题就在你重载那里~记住:Nonzero if the message was translated and should not be dispatched; 0 if the message was not translated and should be dispatched. BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) { if(GetFocus() && GetFocus()->m_hWnd != GetDlgItem(IDC_EDIT)->m_hWnd) { if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) { NextDlgCtrl(); return TRUE; } } return CDialog::PreTranslateMessage(pMsg);}重载的代码只是为了使窗口响应enter事件,就是这样. 因为这个事件被CEdit捕获了。如果你想达到你要的效果(关闭对话框),自己重载CEdit::PretranslateMessage,改变它的行为即可。 原来是因为CEdit的原因,多谢大家帮忙!if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE){ OnClose(); return TRUE;}我在判断的前边拦截了一下VK_ESCAPE,这样就可以了. .idl和COM组件的一个菜鸟级问题 [控制台相关]求教,如何在windows控制台程序中获取到系统待机\休眠消息? 大家帮个忙指点一下 如何获取一个窗口的尺寸(MFC下) VC技术QQ群 1621323 ,限江苏无锡地区 调试过程中在调试窗口里看变量看到的都是10进制数,不方便, 请教高手,如何将校验图片放大并变清晰??? 如何增加图标,并且关联消息响应? 300分求封装ADO的dll组件源代码(vc): Debug模式可用,但Release 模式却不可用, ???IStream 内存泄漏??? VS2005 单选控件问题
{
if(GetFocus() && GetFocus()->m_hWnd != GetDlgItem(IDC_EDIT)->m_hWnd)
{
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
NextDlgCtrl();
return TRUE;
}
} return CDialog::PreTranslateMessage(pMsg);
}重载的代码只是为了使窗口响应enter事件,就是这样.
if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
{
OnClose();
return TRUE;
}
我在判断的前边拦截了一下VK_ESCAPE,这样就可以了.