delphi的一个弹出对话框。有两个按钮。yes  和 No  .  默认焦点在yes按钮上,当用户敲击“回车”时,就触发按钮yes的按下,同事该弹出对话框关闭。
如何将这个对话框的回车消息给屏蔽了。。
只有用户用鼠标单击这个两个按钮才可以关闭弹出对话框。。
请问各位大侠如何实现这个功能

解决方案 »

  1.   


    Application.MessageBox('aaa','bbb',MB_YESNO or MB_DEFBUTTON2);
    //MB_DEFBUTTON2:第二个默认焦点
    //默认为MB_DEFBUTTON1,其他还有MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4
      

  2.   

    为啥要屏蔽呢?不懂按照 m617105 的方法将焦点移动到 NO 上面不就好了?
    这样即使在代码里面也可以一样处理用户是按了YES 还是 NO 啊。
      

  3.   

    我是这样处理这种问题的,自定义一个消息窗口,将提示信息传入,并加入一个checkbox,只有选中这个后,才可以激活按钮。我最近也有这样的需求,场景是这样的:通过扫描枪采集数据,并进行检查,如果有不符合要求的,就弹出一个对话框,提醒操作员,由于操作员扫描时一般不看屏幕,所以当出现提示时,仍然继续扫描,由于扫描枪用了一个回车结束符,因此下一个扫描就把提示窗口关闭了,因此没有正确处理提示内容。尽管给操作员配置了音箱,但还是有错误,不得已自定义了一个窗体,来处理这种情况。并把错误的原因放入一个LISTVIEW中以提醒。
      

  4.   

    可以考虑自定义一个窗口来代替messagebox
      

  5.   

    单独弄个Form
    Formxx.Create..
    Formxx.Caption := sCaption;
    ....
    Formxx.ShowModal;
    Result := ModalResult;或者MessageBox之前程序内消息钩子,MessageBox之后释放钩子
      

  6.   

    自己搞个Form,可以随便怎么弄,方便控制
      

  7.   

    如果这个情况,我各人建议默认返回 IDRETRY...
      

  8.   

    [Error]
    人 = 我