如何检测尺寸握双击事件?(How to detect size grip double-click

2019-10-19 08:58发布

我正在寻找一种方法来检测窗口尺寸握双击,但似乎没有要,即使是大小控制一个单一的点击事件,或与它在所有的任何事件。 猜握区域的大小以及用户是否是真正单击所需的面积是不必要的困难的工作。 但也许还有一些其他的方法来检测,如果光标在窗体的大小控制,除了默认的WinForm的属性?

有一个简单的方法来知道什么时候用户双击窗体的尺寸握?

Answer 1:

你需要:

  1. 设置的方式对形式的非客户区接收鼠标双击事件。
  2. 定义之内,你关心该事件反应的击中格。
  3. 反应事件,当它在你的击中格。

重写WndProc形式的方法来实现这一目标:

    protected override void WndProc(ref Message m)
    {
        const Int32 WM_NCLBUTTONDBLCLK = 0xA3;
        if (m.Msg == WM_NCLBUTTONDBLCLK)
        {
            //This is a 16x16 region...define the bounds you want...
            Rectangle hitbox = new Rectangle(this.Right - 16, this.Bottom - 16, 16, 16);
            Point pos = new Point(m.LParam.ToInt32() & 0xffff, m.LParam.ToInt32() >> 16);
            if (hitbox.Contains(pos))
                MessageBox.Show("got it");  //react however you like
        }
        base.WndProc(ref m);
    }


文章来源: How to detect size grip double-click event?