可是不是说用SetCapture()是获取鼠标的控制权(本例就该在窗口a中呀?)

解决方案 »

  1.   

    当鼠标释放的时候,窗口a会得到WM_LButtonUp的消息,你只要重载OnLButtonUp()即可。
    即使鼠标跑到窗口外边,你也会收到消息的,因为你调用了SetCapture()。当然,别忘了
    在OnLButtonUp()里面调用releaseCapture()
      

  2.   

    to newsb:
        c_z_y已经说得很清楚了,这也就是SetCapture的作用呀!
      

  3.   

    其实SetCapture和releaseCapture() 是成对使用的,你应当注意好过程,你应当在鼠标弹起函数中加一releaseCapture() 
      

  4.   

    SetCapture就是让鼠标消息发回到开始的窗口a
      

  5.   

    Win32的说明文档有些“误导”,32位程序由于各自独立运行,所以即使你调用了SetCapture也不能捕获到其他进程窗口的鼠标消息。事实上,在32位环境中,这个函数只能捕获到本进程所创建的窗口。不过有一种情况例外,就是假如你在某个窗口上按下鼠标键不要释放,此时将鼠标挪到其他进程的窗口上时仍能收到Move消息和最后释放鼠标键时的ButtonUp消息。
    你的程序如果属于这种情况,你就添加响应函数OnLButtonUp即可(用Class Wizard在窗口a的类中为WM_LBUTTONUP添加消息响应函数即可),否则,只有另寻他法——装Mouse Hook。