你这个问题,我以前做过,有两种方案可以实现:
1、捕捉WM_MOUSEMOVE 消息,(首先获得窗口的位置),将鼠标当前与窗口位置的各边缘作比较,再进行处理即可。
2、使用ClipCursorRect()函数也可以,该函数可以将鼠标的移动范围限制在一个指定的区域中,至于具体参数,可以查阅MSDN

解决方案 »

  1.   

    你这个问题,我以前做过,有两种方案可以实现:
    1、捕捉WM_MOUSEMOVE 消息,(首先获得窗口的位置),将鼠标当前与窗口位置的各边缘作比较,再进行处理即可。
    2、使用ClipCursorRect()函数也可以,该函数可以将鼠标的移动范围限制在一个指定的区域中,至于具体参数,可以查阅MSDN
      

  2.   

    我捕捉WM_MOUSEMOVE消息,但是好象不行,如果你快速移出窗口WM_MOUSEMOVE捕捉不到
      

  3.   

    捕捉WM_MOUSEMOVE消息不行,只能用ClipCursorRect()函数
      

  4.   

    void CAaDlg::OnShowWindow(BOOL bShow, UINT nStatus) 
    {
    CDialog::OnShowWindow(bShow, nStatus);

    if (bShow)    {        RECT rt;        GetWindowRect(&rt);        ClipCursor(&rt);//如要解除锁定,要在对框初始化时记下窗口范围,这个我已经实现,不过不是很简单的,呵呵.还可以按ctrl+alt+del解除锁定.    }
    // TODO: Add your message handler code here

    }