键盘钩子中回调函数的参数的疑问

gnuljf 2003-07-30 02:24:34
在键盘钩子的回调中有三个参数:nCode,wParam,lParam
我不是很明白这些参数的作用。
nCode有些资料中是判断其是否大于0,有些又是判断其是否与HC_ACTION相等。究竟它指示的是什么意思?
从wParam,lParam中能否判断功能键状态(Ctrl,Shift,Alt)?应该怎样判断?
而且为什么总是得到两次反应?
...全文
81 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gnuljf 2004-02-24
唉,结贴吧,已经很久了。
回复
郁寒 2003-11-13
上面已经说的很清楚了~~
注意这里:
if (!(lParam & 0xA0000000))//相应一次
这样以后就只有一次反应了~~
回复
gnuljf 2003-11-02
msdn中净是e文看不明白啊
回复
msdn
回复
Paris_Luo 2003-10-09
学习
回复
qhluo02 2003-10-09
看下MSDN那里就有这个介绍
回复
qhluo02 2003-10-09
看下NSMD那里就有这个介绍
回复
gnuljf 2003-09-11
唉,难道就没人愿意再回答了吗?
回复
joachern 2003-08-29
gz
回复
shines77 2003-08-29
收藏
回复
FAICHEN 2003-08-11
看看lParam的每位代表什末
回复
gnuljf 2003-08-11
keystroke-message是什么意思?
回复
gnuljf 2003-08-11
MSDN都是E文的,本人E文太差,看得糊里糊涂的。
那HC_ACTION又是什么东西?
我知道可以用GetKeyState()判断按键的状态,问题是能否从wParam,lParam中获得功能键状态吗?
wParam和lParam有什么区别吗?
回复
FAICHEN 2003-08-05
响应两次是因为分别在按下和弹起截获了两次
只要在其中一个状态下作判断就可以
如楼上第一层
回复
FAICHEN 2003-08-05
响应两次是因为分别在按下和弹起截获了两次
只要在其中一个状态下作判断就可以
如楼上第一层
回复
FAICHEN 2003-08-05
nCode为int型

If code is less than zero, the hook procedure must pass the message to the CallNextHookEx function without further processing and should return the value returned by CallNextHookEx.

回复
andy_lau 2003-08-05
呵呵,不愿献丑
回复
papaya_stone 2003-08-05
参数就看看MSDN吧。可以用GetKeyState()判断按键的状态。

LRESULT CALLBACK KeyboardProc(int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam) // keystroke-message information
{
if (code == HC_ACTION)
{
if (!(lParam & 0xA0000000))//相应一次
{
if (wParam==0x61 || wParam==0x63)//小键盘1,3:LEFT
{
if(::GetKeyState(VK_CONTROL) >= 0)//Ctrl键没有按下
{

}
else
{

}
回复
papaya_stone 2003-08-05
参数就看看MSDN吧。可以用GetKeyState()判断按键的状态。

LRESULT CALLBACK KeyboardProc(int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam) // keystroke-message information
{
if (code == HC_ACTION)
{
if (!(lParam & 0xA0000000))//相应一次
{
if (wParam==0x61 || wParam==0x63)//小键盘1,3:LEFT
{
if(::GetKeyState(VK_CONTROL) >= 0)//Ctrl键没有按下
{

}
else
{

}
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2003-07-30 02:24
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……