问题如下:
比如我有个软件叫test,它运行在windows上面,现在我想在test软件里监视鼠标是否点击了windows系统自带的按钮(比如说“显示桌面”按钮),我在test里面应该如何去截获这个消息呢?
注意是系统的按钮。
欢迎大家讨论,如果解决了问题分不成问题,不够再加!
比如我有个软件叫test,它运行在windows上面,现在我想在test软件里监视鼠标是否点击了windows系统自带的按钮(比如说“显示桌面”按钮),我在test里面应该如何去截获这个消息呢?
注意是系统的按钮。
欢迎大家讨论,如果解决了问题分不成问题,不够再加!
解决方案 »
- 如何拦截WM_DESTROY消息?
- VC如何处理SQL事务
- CSocket用法与线程同步问题
- 关于网络通讯原来的一个疑问?
- 利用并口输出方波问题请教!
- 求职(上海)--VC程序员,SDK/MFC/GUI/SQL/DLL/进程线程实时系统/COM/图像处理
- 怎么将程序最右上角的关闭程序的小叉叉禁止掉?
- 关于论坛规则:有人得一个三角形,有人得五个三角形,还有人得一个红星,还有人得两个红星,这是按照什么规则分类的?以信誉值,还是以分
- vc控制word的问题,急!急!
- 小弟专业是测绘工程,但是对编程很有兴趣,我想选一门语言作为自己的主攻方向,请前辈们提一点意见。
- 关于收到http请求后的页面重定向的问题
- openGl问题
得到鼠标单击的位置 point 写一个分析函数,
伪代码 :
CWnd *pBtn =windowfrompoint( point )
判断是 pBtn是否为按钮
如果是逐级查找pBtn的父窗口,直到为空,如果期间发现其中一个是桌面,就认为单击了系统按纽
CWnd *pParent = pBtn->GetParent()
while( pParent )
{
if( pParent = GetDesktopWindow() )
{
break;
}
}
{
if( pParent = GetDesktopWindow() )
{
break;
}
pParent = pParent.Getparent();
}
http://www.programbbs.com/doc/3164.htm
注意:全局钩子必须在动态库中实现。桌面窗口不包括状态栏和快速启动栏吧。
用spy++看一看那个quick lauch。窗口类的名称:toolbarwindow32之后的就需要楼主自己研究了。
如何判断窗口当前的状态,这个好像不太好实施吧
再问问各位大侠,我如何得到当前鼠标在系统上的坐标位置
比如说我已知某个窗口的句柄,我如何截获这个窗口上所发出的消息,比如BUTTONDOWN这种的。
=======================
挂钩子时不要挂全局钩子,而只对这个线程挂钩就可以得到这个线程的所有消息了。
我现在不知道截获消息的部分是在DLL里面处理呢,还是在EXE里面处理
函数应该怎么写呢,
麻烦各位给我说以下处理 消息的位置和函数
在线等,问题解决就散分,希望今天下午可以解决掉