我要编写一个如同windows media player 那样的视频器
要实现的功能是,当我的鼠标移动到我的视频器的窗体之外后10秒后,进行视频器的裁剪,裁剪掉工具栏等
现在的问题是我如何捕获鼠标的坐标和如何判断移动到窗体之外
我在OnMouseMove下进行了处理
可是只能判断鼠标往下移动的情况。
希望大家帮帮忙。在线等啊

解决方案 »

  1.   

    你那不叫裁剪吧,只是隐藏工具栏。如果你的目标与鼠标是否在窗体内有关,可以使用MouseHover和MouseLeave事件,不必使用MouseMove。不过我也不是很清楚VC里有没有这两事件,呵呵
      

  2.   

    用GetCursorPos来获取当前鼠标位置,不过此时获取的是鼠标在全屏幕的位置,而不是在当前窗口的相对位置,所以在判断是否鼠标还在当前窗口区域内的时候,需要把当前窗口的位置坐标进行转换,比如用ClientToScreen来进行转换
      

  3.   


    VC里没有MouseOver和MouseLeave事件,所以只好靠自己来写了
      

  4.   

    能不能详细点,我还是不太明白,我也用了GetCursorPos了。不过是OnMouseMove里进行的。可是它只能响应鼠标往下移动的情况,往左边,右边,上面都没反应
      

  5.   

    用SetTimer定时检查鼠标的位置……
      

  6.   

    OnMouseMove(UINT nFlags, CPoint point)
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialog::OnMouseMove(nFlags, point);
    AfxMessageBox(_T("ok"));
    }它只能响应鼠标往下移动的情况,往左边,右边,上面都没反应
    这是为什么?
      

  7.   


    建议在MouseMove里不要用MessageBox来显示消息,用TRACE来显示消息,而且一般不会存在往下移动才有反应的情况
      

  8.   

    工具栏可以用MoveWindow来移动到不可见区域,菜单栏的话,应该可以用setmenu(NULL)来实现吧