我为鼠标创建了一个钩子。我想获得鼠标点击坐标,但是 GET_X_LPARAM() 给了我负值(并且在点击不同的地方时总是相同的)。GetCursorPos() 解决了我的问题,但我想知道为什么它不适用于 GET_X_LPARAM/GET_Y_LPARAM。这是代码:
LRESULT CALLBACK Recorder::mouseHook( int code, WPARAM wParam, LPARAM lParam ) {
if( code < 0 )
return CallNextHookEx( m_mouseHook, code, wParam, lParam );
switch( wParam ) {
case WM_LBUTTONDOWN:{
int _hereIsANegativeNumber = GET_X_LPARAM( lParam );
break;}
}
return CallNextHookEx( 0, code, wParam, lParam );
}
这就是我设置钩子的方式:
m_mouseHook = SetWindowsHookEx( WH_MOUSE_LL, &mouseHook, GetModuleHandle( NULL ), 0 );