为什么我建的钩子只能捕获本窗口的消息,对别的窗口怎么不能捕获?
BOOL CCaptureHook::InstallMouseHook()
{
if (!ghMouseHook) ghMouseHook = ::SetWindowsHookEx(WH_MOUSE,MouseProc,ghModule,0);
return (ghMouseHook != NULL);
}extern "C" _declspec(dllexport) LRESULT WINAPI MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode >= 0)
{
if (wParam == WM_LBUTTONDBLCLK|| wParam == WM_NCLBUTTONDBLCLK)
{
int a=0;
//在这里设置断点,在当前程序上双击时会停住,在其他窗口都不行
}
}
return ::CallNextHookEx( ghMouseHook, nCode, wParam, lParam );
}
BOOL CCaptureHook::InstallMouseHook()
{
if (!ghMouseHook) ghMouseHook = ::SetWindowsHookEx(WH_MOUSE,MouseProc,ghModule,0);
return (ghMouseHook != NULL);
}extern "C" _declspec(dllexport) LRESULT WINAPI MouseProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if (nCode >= 0)
{
if (wParam == WM_LBUTTONDBLCLK|| wParam == WM_NCLBUTTONDBLCLK)
{
int a=0;
//在这里设置断点,在当前程序上双击时会停住,在其他窗口都不行
}
}
return ::CallNextHookEx( ghMouseHook, nCode, wParam, lParam );
}
解决方案 »
- C++真的是一种容易造成内存泄漏的语言吗?
- 【求助】自定义函数在多线程中无法使用
- ~~~~图片 边下载 边显示 如何实现?
- 网卡是如何获得路由器分配的IP地址的?
- 大哥们,有什么学习CWebBrowser2 HTML的资料吗?介绍一下啊,谢谢
- OGL,又一个困惑.
- 想学c++什么书拿来入门比较好?
- 如何监视指定的文件夹,当有文本文件拷贝进来时,启动记事本打开考入的文件.
- 请问哪里有介绍批处理文件中的批处理命令和格式的网站或电子书籍.
- 请教几个关于设计和文档序列化的问题..............
- VC 操作Word对象,如何设置页面格式为横向?各位高手现身吧
- 关于位图的处理及存取,高分找错误!
==============================================================================
直接 return TRUE;
--------
比如我在钩子函数里处理了WM_LBUTTONDOWN消息,希望这个WM_LBUTTONDOWN消息不要再被系统处理,但事实上系统还是捕获到这个消息了。 kugou123(酷狗)(http://www.xiaozhou.net) :
在钩子函数里直接 return TRUE;这个消息为什么还是在的啊。
还有要请教大家一个问题:
我通过GetDC(0),根据鼠标位置GetCursor(&pt)要在屏幕上画穿过点pt的一根直线和一根竖线
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
POINT pt;
GetCursor(&pt);
dc.MoveTo(pt.x,0);
dc.LineTo(pt.x,cy);
dc.MoveTo(0,pt.y);
dc.LineTo(cx,pt.y);
在移动鼠标后要再画出新的两根线,那么有什么好的方法去除上次的那两根线,
我用先保存整个桌面位图,然后每次在画线之前先BitBlt(..,SRCCOPY)桌面觉得不太理想(鼠标移动的快有闪烁),问下CDC有没有提供好的函数来完成这样的操作?