用鼠标点击Edit控件后(也即当焦点落在Edit控件后),我要响应一个事件,比如弹出一对话框.目前我是在OnSetfocusEdit1这个消息中响应的,但当第一次弹出对话框后,我关掉对话框,但接着又弹出,如此反复.也就是说关掉对话框又触发了OnSetfocusEdit1.该如何解决这个问题啊?我只想让它弹一次,关掉就没了!

解决方案 »

  1.   

    在IDOK里写个按钮,m_button.SetFocus();不显示,就可以了`
      

  2.   

    增加一个控制量,例bool bCtrl,
    在弹出对话框的时候,要求bCtrl=true,弹出结束后bCtrl=false;
      

  3.   

    to livedeal(怀念):我弹出对话框只是一个例子,我最终的目的是执行其他的一些程序,如运行系统软键盘to jerry_of(总也睡不醒) :我还想关掉以后,再点击Edit控件又可以弹出,我试着在OnKillfocusEdit1 里设bCtrl=true,但结果又回到原先的状态了.
      

  4.   

    子类化Edit,截获鼠标单击事件即可。
      

  5.   

    子类化EDIT空间,处理鼠标单击时间,处理完后,将该事件继续传递给原窗口过程。
      

  6.   

    if (b_t)
    {
    b_t = false;
    CDlg1 dg;
    dg.DoModal();
    }
    else
    {
    b_t=true;
    }
      

  7.   

    把bool b_t;定义放在。h里
    初始化为true;
      

  8.   

    to jerry_of(总也睡不醒):你的这种方法还是不能实现焦点不退出EDIT也能在关掉以后再点EDIT又能弹出的情况,先谢了! :)
      

  9.   

    不明白你的意思,我自己写了一个test是可以的