如何控制鼠标的活动区域

fengfeng1982 2004-12-15 12:45:57
有时候在游戏中的窗口模式下想把鼠标限制在游戏窗口的区域内,有时候想把鼠标活动限制区域解除,用程序如何实现?(以前看过用程序来限制鼠标的活动区域,不过那只是针对该程序本身,感觉对其他程序使用不行,是不是要用到消息拦截?)
...全文
252 点赞 收藏 16
写回复
16 条回复
fengfeng1982 2004年12月24日
ft,都说得这么简单的,算了,结贴了,反正最近也没时间搞。
回复 点赞
mynamelj 2004年12月16日
ClipCursor
回复 点赞
fengfeng1982 2004年12月16日
还是不明白。我不是要把鼠标限制在本窗口,而是限制在其他窗口内,这应该怎么做?还有就是要如何解除其他窗口对鼠标限制(就是窗口打开的时候鼠标就已经被限制了)
回复 点赞
wy311216 2004年12月15日
后面一个函数是解除限定
回复 点赞
wy311216 2004年12月15日
使用API函数ClipCursor可以将鼠标限定在某一区域;
比如将鼠标限定在对话框中的静态文本框(IDC_CLIPRECT)
//限定
void CLimitCursorPosDlg::OnClipcursor()
{
CWnd *pWnd = GetDlgItem(IDC_CLIPRECT);
CRect rc;
pWnd->GetWindowRect(&rc);
//设定区域
ClipCursor(&rc);
}
void CLimitCursorPosDlg::OnReleaseclip()
{
ClipCursor(NULL);
}
回复 点赞
snowroad 2004年12月15日
运用鼠标捕捉功能:SetCapture(),当鼠标超出某个矩形后,把鼠标重新定位一下,等于给又拉了回来。不需要限制鼠标范围时,再解除捕捉。
回复 点赞
老夏Max 2004年12月15日
关注一下!
回复 点赞
kugou123 2004年12月15日
限制在本窗口:
CRect rect1;
GetWindowRect(&rect1);
ClipCursor(&rect1);
回复 点赞
fengfeng1982 2004年12月15日
能详细点吗?
回复 点赞
hjunxu 2004年12月15日
这个是不是对程序本身的?我是想用这个程序针对别的窗口的鼠标活动范围进行控制,而不是该程序本身
--------------------
用HOOK吧。
回复 点赞
wy311216 2004年12月15日
只要你能取得那个窗口的指针就可以
回复 点赞
zcxx5201314 2004年12月15日
用mousemove消息,自己判断也可以吧。
回复 点赞
fengfeng1982 2004年12月15日
这个是不是对程序本身的?我是想用这个程序针对别的窗口的鼠标活动范围进行控制,而不是该程序本身。
回复 点赞
oyljerry 2004年12月15日
ClipCursor设定区域
回复 点赞
vctool 2004年12月15日
是要用CLIPCURSOR,我做过的.
回复 点赞
tyzyx 2004年12月15日
用下面三个API函数组合
ClipCursor
ClipCursorClear
ClientToScreen
回复 点赞
发动态
发帖子
界面
创建于2007-09-28

7975

社区成员

11.5w+

社区内容

VC/MFC 界面
社区公告
暂无公告