博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Outlook-style Wheel Mouse Behavior
阅读量:5908 次
发布时间:2019-06-19

本文共 926 字,大约阅读时间需要 3 分钟。

原文链接:

using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsApplication1 {
  public partial class Form1 : Form, IMessageFilter {
    public Form1() {
      InitializeComponent();
      Application.AddMessageFilter(this);
    }
    public bool PreFilterMessage(ref Message m) {
      if (m.Msg == 0x20a) {
        // WM_MOUSEWHEEL, find the control at screen position m.LParam
        Point pos = new Point(m.LParam.ToInt32() & 0xffff, m.LParam.ToInt32() >> 16);
        IntPtr hWnd = WindowFromPoint(pos);
        if (hWnd != IntPtr.Zero && hWnd != m.HWnd && Control.FromHandle(hWnd) != null) {
          SendMessage(hWnd, m.Msg, m.WParam, m.LParam);
          return true;
        }
      }
      return false;
    }
    // P/Invoke declarations
    [DllImport("user32.dll")]
    private static extern IntPtr WindowFromPoint(Point pt);
    [DllImport("user32.dll")]
    private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
  }
}

转载地址:http://hivpx.baihongyu.com/

你可能感兴趣的文章
axios 拦截 , 页面跳转, token 验证(自己摸索了一天搞出来的)
查看>>
区块链初始化与实现POW工作量证明
查看>>
Python从菜鸟到高手(13):分片(Slicing)
查看>>
编码导致 html和aspx 样式差异,变形
查看>>
C++的Json解析库:jsoncpp和boost .
查看>>
EventThread线程对VSync的接收
查看>>
file_get_contents()函数超时处理方法
查看>>
可重入与线程安全
查看>>
如何将经纬度利用Google Map API显示C# VS2005 Sample Code
查看>>
Visual Studio 添加SVN插件
查看>>
spring3.0结合Redis在项目中的运用
查看>>
1.1经典软件过程模型的特点
查看>>
STL入门
查看>>
Oracle的sqlnet.ora文件配置
查看>>
hbase分布式集群搭建
查看>>
ASP.NET Core 2.0 : 六. 举个例子来聊聊它的依赖注入
查看>>
VidLoc: A Deep Spatio-Temporal Model for 6-DoF Video-Clip Relocalization
查看>>
akka---Getting Started Tutorial (Java): First Chapter
查看>>
目前机器学习和深度学习能做些什么?
查看>>
基于html5 canvas和js实现的水果忍者网页版
查看>>