新建了一个单文档程序,在客户区画图测试,               加载了鼠标左键单击 的消息,在消息函数里面               SetCaptrue() ,  // 进行鼠标捕获               这句 屏蔽掉和不屏蔽没有什么本质区别。               鼠标捕获,难道鼠标消息会丢失?? 还是什么意思???
                                                谢谢!!!

解决方案 »

  1.   

    SetCapture()不是你想的那样的,比如说,一个Button,你拿鼠标在上面动,那么Button就会收到消息了,可是你鼠标出了Button的Rect了,就不会收到消息了
    可是有时候还需要知道这个消息,怎么办?SetCapture()你要是问什么时候,举例说,比如说拖动什么的。
      

  2.   

    看文档
    http://msdn.microsoft.com/en-us/library/ms646262(VS.85).aspx
      

  3.   

    在鼠标按下的时候SetCapture,当鼠标保持按下的状态被移到客户区以外时松开鼠标,客户端窗口还是能收到WM_LBUTTONUP的消息。但是如果你没有SetCapture,这种情况下,客户区窗口就收不到WM_LBUTTONUP消息了。
      

  4.   

    窗口SetCapture,就会一直响应鼠标,一直到releaseCapture
      

  5.   


                     非常感谢各位的回复。
                     看完各位的回复,我对SetCapture()理解是,在 一个rect 内进行鼠标捕获,比如要捕获消息 A;                 当鼠标离开这个rect 时便不会收到 消息 A,可是我想要接收这个消息 A 来进行一些操作,                 那就要加入 SetCapture() 进行鼠标捕获。
                      
      

  6.   

                 刚根据各位的回复测试了一下,添加 左键  Down 和 Up 消息,       然后在 Up 函数内加了个 MessageBox(); 在Down 函数内 添加        SetCapture(),然后在 客户区进行绘图,我在客户区或者非客户       区释放鼠标,或者窗口外都会弹出 MessageBox(); 但是要不加        SetCapture(),就只能在客户区释放左键才会弹出 MessageBox().                                        谢谢各位!!!