GET_WHEEL_DELTA_WPARAM macro in C#
GET_WHEEL_DELTA_WPARAM macro in C#
如何在C#中使用GET_WEEL_DELTA_WARM宏?
为了最大限度地清晰起见,我定义了一组函数,如下所示:
internal static class NativeMethods
{
internal static ushort HIWORD(IntPtr dwValue)
{
return (ushort)((((long)dwValue) >> 0x10) & 0xffff);
}
internal static ushort HIWORD(uint dwValue)
{
return (ushort)(dwValue >> 0x10);
}
internal static int GET_WHEEL_DELTA_WPARAM(IntPtr wParam)
{
return (short)HIWORD(wParam);
}
internal static int GET_WHEEL_DELTA_WPARAM(uint wParam)
{
return (short)HIWORD(wParam);
}
}
然后使用这样的函数,其中wParam
是处理Win32 WM_MOUSEWHEEL
或WM_MOUSEHWHEEL
消息时得到的WPARAM
参数:
int zDelta = NativeMethods.GET_WHEEL_DELTA_WPARAM(wParam);
您可能需要抑制溢出检查才能正常工作。为此,请更改项目设置,或将相关转换函数封装在unchecked
块中。
高位字,带符号:
((short)(wParam>>16))
有MouseWheelEventArgs。Delta属性:
获取一个值,该值指示鼠标滚轮的更改量。
private void MouseWheelHandler(object sender, MouseWheelEventArgs e)
{
if (e.Delta > 0)
{
// Do one thing
}
else if (e.Delta < 0)
{
// Do the other thing
}
}
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- "unexpected in macro definition"
- GET_WHEEL_DELTA_WPARAM macro in C#
- VS2010 _DELETE_CRT macro in STL
- C++ concatenation in macro