使用messagebox遇到的一个问题

亞鬥 2012-02-06 02:16:18
我做了一个while的循环,循环中使用了messagebox,要求是点击messagebox的确认后while才能继续下去。问题来了,有次我

在跳出messagebox时不小心多次按了键盘的确认键,后面就不再出现对话框了,怎么样只有当messagebox出现的时候才响应键

盘的消息呢。令 取消messagebox的键盘响应怎么搞
...全文
197 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
自己用对话框实现一个MessageBox
奔跑的北极熊 2012-02-07
  • 打赏
  • 举报
回复
重载OnCancel,并让它什么也不做。
vann1982 2012-02-06
  • 打赏
  • 举报
回复
把enter注册成hotkey单独相应也可解决 哈
hdg3707 2012-02-06
  • 打赏
  • 举报
回复
把对话框里的关闭按纽(或确认按纽)的一个接收回车响应的属性改成FALSE;,在对话框属性里改,用鼠标点关闭按纽,这时属性就显示关闭按纽的属性,找到这个属性改成FALSE;
亞鬥 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhanshen2891 的回复:]
如果你是在while里面调用MessageBox,并且你也没有处理它的返回值的话,那么不管你怎么按回车就会一直弹。

你是对话框程序?是不是你的对话框上有焦点了,按了回车对话框消失了
[/Quote]

以上是我部分代码,我就是要他弹对话框按确认后继续下面的,然后再弹出来,再选择...这样 但是我按多次确认 对话框直接选择了确认而不弹出来了 有没有避免这种情况出现的办法 或者 取消键盘的响应 也就是只能鼠标点确认 不能按enter
亞鬥 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhanshen2891 的回复:]
如果你是在while里面调用MessageBox,并且你也没有处理它的返回值的话,那么不管你怎么按回车就会一直弹。

你是对话框程序?是不是你的对话框上有焦点了,按了回车对话框消失了
[/Quote]


sprintf( szBuffer, "继续请点击确认键!",str );

if(MessageBox(NULL,szBuffer,"提示", MB_OKCANCEL)==IDOK )
{
result= ClearData();
if(result==-1)
{
return -2;
}
else
return 0;
}
return -1;

zhanshen2891 2012-02-06
  • 打赏
  • 举报
回复
如果你是在while里面调用MessageBox,并且你也没有处理它的返回值的话,那么不管你怎么按回车就会一直弹。

你是对话框程序?是不是你的对话框上有焦点了,按了回车对话框消失了
诶呦 2012-02-06
  • 打赏
  • 举报
回复
if(IDOK==MessageBox("XX"))
亞鬥 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
MessageBox有返回值,判断一下
[/Quote]

应该跟返回值没有关系吧,我按了多少次确认键 messagebox就在这些次过后又重新出现。应该是messagebox在没有弹出前就已经响应了之前按的enter键
ouyh12345 2012-02-06
  • 打赏
  • 举报
回复
MessageBox有返回值,判断一下

15,980

社区成员

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

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