如何屏蔽“回车键”和“ESC”键关掉对话框?

sangzi33 2006-07-07 12:36:41
在弹出的对话框,按“回车键”和“ESC”键时,对话框会自动关掉,那么怎样才能避免这个情况呢?
...全文
315 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
PDD123 2006-07-07
  • 打赏
  • 举报
回复
还要响应WM_CLOSE消息,修改其对应的函数,要不你关闭不掉窗口了。你可以修改成这样:
void CMyDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default

CDialog::OnOK();//这种做法不是很好,你可以用更好的方法。
}
快乐鹦鹉 2006-07-07
  • 打赏
  • 举报
回复
很简单阿。可以这样做:
在对话框上添加OK和CANCEL按钮,ID分别为IDOK和IDCANCEL,然后响应它们的click事件。将响应函数中的默认的调用基类的OnOK和OnCancel语句删除掉。然后再把这两个按钮删除就可以了。
DentistryDoctor 2006-07-07
  • 打赏
  • 举报
回复
在PreTranslateMessage过滤掉相应的按键消息。
Stefine 2006-07-07
  • 打赏
  • 举报
回复
方法多多

记住那些东东的由来就可以灵活运用了

为何IDOK与IDCANCEL调用EndDialog(IDOK);或EndDialog(IDCANCEL);这SDK函数

如果要想用发送消息方式,就用PostQuitMessage(0);

LZ的问题最好还是用PreTranslateMessage
zyyoung 2006-07-07
  • 打赏
  • 举报
回复
楼上的方法,是是
xx_jj 2006-07-07
  • 打赏
  • 举报
回复
在PreTranslateMessage(MSG* pMsg)中添加如下代码

if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_ESCAPE)
return TRUE;
if (pMsg->wParam == VK_RETURN)
return TRUE;
}


解决了就揭帖
PDD123 2006-07-07
  • 打赏
  • 举报
回复
好办法
zhoujie20153 2006-07-07
  • 打赏
  • 举报
回复
在PreTranslateMessage(MSG* pMsg)中添加如下代码

if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_ESCAPE)
return TRUE;
if (pMsg->wParam == VK_RETURN)
return TRUE;
}
sangzi33 2006-07-07
  • 打赏
  • 举报
回复
谢谢大家,我解决问题了,在PreTranslateMessage里过滤掉相应的按键消息就可以了,谢谢!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧