我最近使用windows窗口程序捕捉鼠标的滚轮消息,鼠标向前(向上或向右)滚动时偏移量总是120。鼠标向后(向左或向下)滚动时偏移量总是65416,而不是负数-120,如下图所示,这是怎么回事呢?
经过一番查询,发现原来-120的无符号数表示为65416,使用如下c++的内联函数转换,就可以将无符号数转换为有符号的-120。转换函数如下:
inline short GetWheelDelta(WPARAM wParam) {
return static_cast<short>(HIWORD(wParam));
}
经过上述函数转换后,正常鼠标滚轮消息的偏移量可以正常打印了,如下图:
评论区