当鼠标在CWnd对象内部的时候,可以用OnMouseMove,但是当移出CWnd对象后就不行了,怎么知道鼠标已经移出CWnd对象?

解决方案 »

  1.   

    当移出CWnd对象后,如果你还想让你的程序捕获到鼠标消息,可以使用SetCapture函数。。用完后用ReleaseCapture来释放。。
      

  2.   

    DentistryDoctor(牙科医生(向各位老大取经了)) :
    没有WM_MOUSELEAVE这个消息啊 
    tabby(-_-! .. 内存泄漏) :
    我试试
      

  3.   

    tabby(-_-! .. 内存泄漏) :
    不知道怎么用啊
      

  4.   

    就是在你想捕获不在自己程序范围内的鼠标消息时用啊,比如:
    一个画选中虚线框的程序,我在LBUTTONDOWN和MOUSEMOVE里面画虚线框,在LBUTTONUP里面负责擦除已画的虚线框,这段代码工作时,如果LBUTTONUP是在程序范围之内的话,可以工作得很好,但是如果你的程序窗体之外松开鼠标左键的话,程序却得不到LBUTTONUP这个消息,使得已画的虚线框无法正确擦除。。后来,在LBUTTONDOWN里面加入SetCapture函数,程序就能正确响应LBUTTONUP消息了,无论鼠标有没有离开自己主窗口的范围。。记住在LBUTTONUP里面写上ReleaseCapture释放就可以了。。