鼠标hook问题:勾取到的鼠标消息的wParam在那?
ghgk 2004-04-13 10:21:46 以下是我的理解
hook到鼠标消息后,传入的参数与鼠标消息参数不同。在hook中wParam是函消息种类,而在lParam在hook函数中则上一个MOUSEHOOKSTRUCT结构,定义如下。查阅MSDN得知这个结构中的pt是鼠标的坐标,hwnd是鼠标消息接收的窗口句柄。而wHitTestCode则是非客户区鼠标消息的wParam的内容,即非客户区鼠标消息鼠标在非客区的什么地方,在标题栏、关闭按钮、最大化、最小化按钮或者是程序图标上。而dwExtraInfo在MSDN给出的解释则是Specifies extra information associated with the message,那么这个结构成员里包含的才应该是WM_MOUSEMOVE消息的wParam参数的内容。
我要实现原来在WM_MOUSEMOVE消息中对消息传入参数wParam的判断,以知道是否按下了鼠标左键的功能的代码在hook是否应该改写为下面这个
if (wParam & MK_LBUTTON)
是否应该修改为如下才对?
if (MOUSEHOOKSTRUCT.dwExtraInfo & MK_LBUTTON)
typedef struct {
POINT pt;
HWND hwnd;
UINT wHitTestCode;
ULONG_PTR dwExtraInfo;
} MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;