各位大虾:小弟发现在一个Edit的失去焦点事件中用MessageBox弹出一个Message后,程序没有收到鼠标左键的弹起消息(WM_LBUTTONUP)。导致程序认为左键处于按下状态。这样就造成获得焦点的控件中无法响应键盘消息。如果说在Message后,用mouse_event手动发一个WM_LBUTTONUP的消息的话,又会触发当前获得焦点控件的OnClick事件。求助!!!

解决方案 »

  1.   

    是这样吗?我怎么觉得是因为messagebox后,edit失去焦点导致不能输入啊。
    SetFocus回去就好了吧(这个是mfc bug,msdn里面有说)
      

  2.   

    好像不是失去焦点导致的。比如说有两个Edit。在Edit B中输入一些内容,然后把焦点移到Edit A后,再点击Edit B,如果在Edit A的KILLFOCUS事件中报一个Message的话,关闭Message后,在Edit B上滑动鼠标所表现的现象就和按住鼠标左键滑动的现象一样。还有,是否可以告知如何在MSDN中找到你所说的BUG的说明。
      

  3.   

    在Edit A的KILLFOCUS事件中给系统发一个WM_LBUTTONUP的消息,可以吗
      

  4.   

    Bug是指MFC中窗口控件弹出新的窗口失去焦点后,不一定会再得到焦点(当新窗口关闭后),我是在以前看例子的时候,程序注释里有写。