主要是使用了ClipCursor,
void CMy001View::OnLButtonDown(UINT nFlags, CPoint point) //********限制鼠标移动范围
{
CRect rect; //新建一个矩形框
GetClientRect(&rect); //把客户区赋值给矩形框
ClientToScreen(&rect); //将客户区窗口转换为屏幕窗口坐标
ClipCursor(&rect); //限制鼠标移动范围在矩形框中
CView::OnLButtonDown(nFlags, point);
}
void CMy001View::OnRButtonUp(UINT nFlags, CPoint point) //*********解除鼠标移动范围
{
ClipCursor(NULL);//释放鼠标
CView::OnRButtonUp(nFlags, point);
}
但是这个函数设置鼠标范围必须是一个矩形框,对于圆形就不行了,我在网上找啊找,终于发现一个帖子里,(http://topic.csdn.net/u/20091121/15/83e6e972-8f94-4a17-b7ec-1fbc8c073b13.html?16940)有位大神wartim提到动态地求出当前点所构成的四边形是否是圆内切四边形,然后把四边形赋给ClipCursor。这个想法实在是太好了,于是尝试了一下,在OnMouseMove函数中写下:
限制鼠标活动范围///
CRect rect;
GetCli