问一个小问题

副组长 2009-09-30 10:48:55
一个无模式对话框,总是在遇到回车后就退出了。我只想在鼠标点击OK时再退出,怎么办?
好像如果焦点在编辑框的时候输入回车,先清理对话框,后响应编辑框的KILLFOCUS消息,这样会遇到一些问题。
...全文
89 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
副组长 2009-09-30
  • 打赏
  • 举报
回复
PreTranslateMessage逮到回车wparam == 13 了,问题解决,谢谢各位!

结贴!
大蓝头 2009-09-30
  • 打赏
  • 举报
回复
/************************************************************************/
/* */
/************************************************************************/
BOOL CInfoShow::PreTranslateMessage( MSG* pMsg )
{
if( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
{
return TRUE; //屏蔽掉Esc键
}
if( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
{
return TRUE; //屏蔽掉Enter键
}
return CDialog::PreTranslateMessage(pMsg);
}

来个完整的
大蓝头 2009-09-30
  • 打赏
  • 举报
回复
就是6楼的办法,屏蔽掉回车和ESC的按键消息!
副组长 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jimmy808126 的回复:]
    在dlg的PreTranslateMessage 中加上
      if(pMsg->message==WM_KEYDOWN && pMsg->wParam  ==  VK_RETURN)  {
        if (FromHandle(pMsg->hwnd)->GetDlgCtrlID() == IDOK)
{
    return 0;
}
    }
[/Quote]

试试你这个。
副组长 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 luckzengwei 的回复:]
你把你无模态对话框的程序贴上来看看~
[/Quote]
就是对话框指针new,然后Create,然后showwindow什么的。没法贴啊。
luckzengwei 2009-09-30
  • 打赏
  • 举报
回复
你把你无模态对话框的程序贴上来看看~
jimmy808126 2009-09-30
  • 打赏
  • 举报
回复
在dlg的PreTranslateMessage 中加上
if(pMsg->message==WM_KEYDOWN && pMsg->wParam == VK_RETURN) {
if (FromHandle(pMsg->hwnd)->GetDlgCtrlID() == IDOK)
{
return 0;
}
}
副组长 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shunruo 的回复:]
去除ID为:IDOK和IDCANCEL的按钮.
[/Quote]
奇了怪了,我原来响应IDOK按钮事件来的,现在我吧按钮都换了,新添加别的按钮。回车还是照关不误。

按键事件在这个对话框里面不响应,和无模式对话框的消息响应机制有关?
副组长 2009-09-30
  • 打赏
  • 举报
回复
我处理IDOK了,不管用呢?
  • 打赏
  • 举报
回复
ESC也会有类似现象。。。。类似处理。。。
  • 打赏
  • 举报
回复
重载 OnOk 把里面的东西删了
凤矶 2009-09-30
  • 打赏
  • 举报
回复
去除ID为:IDOK和IDCANCEL的按钮.

15,980

社区成员

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

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