我正在尝试在Windows上的C ++中检测滚轮事件,但遇到了麻烦。
我尝试了多种方法,分别使用wParam
,GET_WHEEL_DELTA_WPARAM
和HIWORD
检测GET_KEYSTATE_WPARAM
中的鼠标滚轮事件(这给我带来了语法错误)。不知道从这里尝试什么。我猜我使用的相关方法有误,或者我没有正确准备它们。
int isScrollDown() {
WPARAM wParam;
GET_WHEEL_DELTA_WPARAM(wParam);
std::cout << wParam << std::endl;
}
//inside main()
while(1) {
if(isScrollDown()) {
//do something
break;
}
sleep(50);
}
无论我是否用鼠标做某事,它都会打印6422352。
答案 0 :(得分:1)
在WM_MOUSEWHEEL回调中处理LRESULT CALLBACK WindowProc( In HWND hwnd, In UINT uMsg, In WPARAM wParam, In LPARAM lParam );消息。
然后使用wParam上的GET_WHEEL_DELTA_WPARAM宏,正号指示方向盘远离用户旋转(向上),负号指示方向向用户旋转(向下)