如何解析lParam参数
悬赏分:100 - 离问题结束还有 14 天 23 小时
// 钩子函数LRESULT CALLBACK __declspec(dllexport) __stdcallMyProc(int nCode, WPARAM wParam, LPARAM lParam){
// if(wParam == WM_MENUCHAR)
// {
CString strMsg;
strMsg.Format("wParam:%d, lParam:%d", wParam, lParam);
SetWindowText(hWnd, strMsg.c_str());
// MessageBox(NULL, strMsg.c_str(), "DLL_Msg", MB_OK);
// }return (CallNextHookEx(hHook, nCode, wParam, lParam));
}
这是个线程注入的钩子函数,现在目标程序是记事本,我对记事本操作,发现
wParam得到的总是1或3,只有lParam在不停的变化,但LParam是长长的一段数字,也不知道哪段代表什么,现在的功能是,只要有消息进来,就把消息显示在标题上,比如我现在想只在点菜单的时候,显示个MessageBox怎么做?
悬赏分:100 - 离问题结束还有 14 天 23 小时
// 钩子函数LRESULT CALLBACK __declspec(dllexport) __stdcallMyProc(int nCode, WPARAM wParam, LPARAM lParam){
// if(wParam == WM_MENUCHAR)
// {
CString strMsg;
strMsg.Format("wParam:%d, lParam:%d", wParam, lParam);
SetWindowText(hWnd, strMsg.c_str());
// MessageBox(NULL, strMsg.c_str(), "DLL_Msg", MB_OK);
// }return (CallNextHookEx(hHook, nCode, wParam, lParam));
}
这是个线程注入的钩子函数,现在目标程序是记事本,我对记事本操作,发现
wParam得到的总是1或3,只有lParam在不停的变化,但LParam是长长的一段数字,也不知道哪段代表什么,现在的功能是,只要有消息进来,就把消息显示在标题上,比如我现在想只在点菜单的时候,显示个MessageBox怎么做?
解决方案 »
- PNG数据转换成BMP数据!~~~求问?
- WIN32 API 基础编程——俄罗斯方块(附源码)
- 按钮重载drawitem函数如下所示
- 数字类型问题
- vc中如何实现实时的快速显示数据(对话框上与document-view结构)
- 程序编译后出现这个错误:Error spawning cl.exe 什么意思啊?急死我了
- 这个错误我真的看不出来,那位DX帮帮忙!!!
- 如何在dialog下对用已经创建好了的List框把数据显示出来?
- 大哥们过来看一下
- 线程调用问题(求助)
- 请问ReleaseDC()中第一个参数有什么用啊?既然已经提供了DC的句柄,又为什么还要提供窗口句柄呢?
- 在VC里面,登陆模块怎样显示您还有几次机会
它显示
wParam:1, lParam:52471
点“查看,状态栏”
它显示wParam:1, lParam:52400
当然,现在这两个数字是随便写的,但实际运行就是这个样子的。前几位一样,后面几位变。
你难道让我手动记住,点“查看,状态栏”的时候这个数字是多少,
然后在下次编程的时候
if(lParam == 52400)
{
AfxMessage("你点了查看,状态栏");
}
这样太傻了吧
LPARAM lParam;
ParameterswParam
The low-order word specifies the character code that corresponds to the key the user pressed.
The high-order word specifies the active menu type. This parameter can be one of the following values. MF_POPUP
A drop-down menu, submenu, or shortcut menu.
MF_SYSMENU
The window menu.
lParam
Handle to the active menu.
不知道解释的对不对。。盼高手确定