0
点赞
收藏
分享

微信扫一扫

MFC-MouseProc鼠标钩子处理函数

MFC-MouseProc鼠标钩子处理函数_鼠标中键

 

POINT pos = {0,0};
CString strx;
HWND hwnd;

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam,LPARAM lParam)
//参数1:当nCode=HC_ACTION时,wParam和lParam 包含鼠标信息
// 当nCode=HC_NOREMOVE时,wParam和lParam 包含鼠标信息,并且鼠标消息没有从消息队列里移除
// wParam 指定鼠标消息的标识符
// lParam 一个MOUSEHOOKSTRUCT 结构的指针
//返回值:如果参数1:nCode小于0,则必须 返回CallNextHookEx(),也就是返回CallNextHookEx()的返回值
// 如果参数1:nCode大于等于0,并且钩子处理函数没有处理消息,强烈建议您 返回CallNextHookEx()的返回值,否则当您安装WH_MOUSE钩子的应用程序将不会得到通知,并且得到一个错误的结果
// 如果钩子处理了消息,您可以返回一个非0值,消息就不在向下传递了

{
if (nCode == HC_ACTION)
{


if (wParam == WM_LBUTTONDOWN) //鼠标左键按下时
{
//AfxMessageBox(_T("鼠标左键按下"));

MOUSEHOOKSTRUCT* pMouseHook = (MOUSEHOOKSTRUCT*)lParam;
pos = pMouseHook->pt; //返回相对于屏幕的坐标

strx.Format(_T("%d"), pos.x); //把数值转换成字符串
AfxMessageBox(strx);

hwnd = pMouseHook->hwnd;//返回接收到鼠标消息的窗口的句柄


}


//WM_MOUSEWHEEL 滚轮滚动时
//WM_RBUTTONDOWN 鼠标右键按下时
//WM_RBUTTONUP) 鼠标右键弹起时
//WM_LBUTTONUP) 鼠标左键弹起时
//WM_MOUSEMOVE 鼠标在客户区移动时
//WM_LBUTTONDBLCLK 双击鼠标左键
//WM_RBUTTONDBLCLK 双击鼠标右键
//WM_MBUTTONDBLCLK 双击鼠标中键(滚轮)
//WM_MBUTTONDOWN 按下鼠标中键(滚轮)
//WM_MBUTTONUP 松开鼠标中键(滚轮)
//WM_MOUSEMOVE 鼠标移动



}

return 0;
//
}

 

实例工程下载:

链接:https://pan.baidu.com/s/1doEq5HgOnDh-TzBRvS-_aQ      提取码:6666

 

 

 


举报

相关推荐

0 条评论