怎么判断鼠标是否离开窗口区域

怎样判断鼠标是否离开窗口区域
rt;
PS:①要求能在 Luna 的 《DirectX 9.0c 3D游戏开发编程基础》 的源代码上运行,即 与MFC是有些不一样的:它缺少一些MFC的类库或者说是相关函数,它可以认为一个简单的手写的VC++窗口程序,希望帮助我的热心大神能注意到这点,以免浪费时间做无用功.
   ②如果能给出代码最好,如果能给出思路或相关系统函数,也可以,本人将在调试运行出结果后给分.


   下面给出我实现的一个Directx摄像机实现代码,鼠标超出窗口的问题令我很困扰:
   这是回调函数的部分:
case WM_LBUTTONDOWN:
{
::GetCursorPos(&OriginPT);    //按下鼠标左键获取位置     
ScreenToClient(m_hWnd , &OriginPT);
bLBtnDown = true;
}
break;

case WM_LBUTTONUP:
{
bLBtnDown = false;   //松开左键就离开
}
break;

case WM_MOUSEMOVE:
{
if (OriginPT.x < 0 || OriginPT.y < 0 || OriginPT.x > scWidth || OriginPT.y > scHeight)       //判断在不在窗口内,但是没有作用,估计是离开了窗口就不向这个程序发送消息了
{
bLBtnDown = false;
}
if (bLBtnDown)
{
::GetCursorPos(&DestinationPT);
ScreenToClient(m_hWnd , &DestinationPT);
MoveX = DestinationPT.x - OriginPT.x;
MoveY = DestinationPT.y - OriginPT.y;
TheCamera.pitch(MoveY * 0.01f);     //摄像机的旋转,这个与问题没有多大关联
TheCamera.yaw(MoveX * 0.01f);
::GetCursorPos(&OriginPT);
ScreenToClient(m_hWnd , &OriginPT);
    }
}
break;
------解决方案--------------------
使用SetCapture捕获鼠标,就算鼠标离开了窗口也会发送消息给程序哦