VC中将当前窗口隐藏后,怎样改变前景窗口的鼠标指针

ShowWindow(SW_HIDE);HWNDhwnd=::GetForegroundWindow();::SendMessage(hwnd,SW_SETCURSOR,... ShowWindow(SW_HIDE);
HWND hwnd=::GetForegroundWindow();
::SendMessage(hwnd,SW_SETCURSOR,0,(LPARAM)LoadCursor(NULL,IDC_CROSS));
发送WM_SETCURSOR消息到前景窗口没有作用,请问怎么解决?
展开
 我来答
Frank7258
2011-04-07 · TA获得超过1503个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:550万
展开全部
你这个应该不行的,WM_SETCURSOR是连续发送的信号,你用Spy++看一下就知道了,你鼠标在窗口上移动,WM_SETCURSOR消息数量和WM_MOVE之类的一样多。

鼠标是全局量,你在你自己的程序里调用SetCursor函数也会影响到其它程序,但是一般默认的窗口函数在相应WM_SETCURSOR的时候都会将鼠标设置成注册窗口时提供的鼠标,绝大部分时候都是那个最普通的箭头。

所以你想要的效果比较难实现。当然你安装全局的钩子是可以实现的,关键是你要屏蔽掉当前窗口的WM_SETCURSOR消息。
追问
我使用了全局的CBT钩子,发现并不是所有的窗口都能改变鼠标指针形状
追答
如果你可以安装了全局钩子,那么进入了目标进程的地址空间,那么你可以直接更改目标窗口的窗口来来修改默认的鼠标,用SetClassLongPtr来进行。参数GCL_HCURSOR。另外,你还可以通过SetWindowLongPtr来替换目标窗口的窗口函数,这样,所有的消息你都可以处理了。
chendetong1993
2011-04-06 · 超过17用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:49.2万
展开全部
...无语 这里不叫鼠标指针,而叫句柄。你百度下就知道了。窗口没了,句柄也没了。
WM_SETCURSOR是什么我不太清楚。实现不行的话。你用消息钩子。去钩这个消息。
追问
我要更改的是鼠标的指针形状,不是句柄。
追答
。。 这样啊 说清楚嘛 误解了 呵呵
你看下http://apps.hi.baidu.com/share/detail/16811866
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
437384801
2011-04-07 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:506万
展开全部
是否用postMessage呢,或者是否用setcapture(句柄),函数来补住鼠标指针,使鼠标焦点在前景窗口
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式