gpt4 book ai didi

c# - 如何阻止双击 Windows 窗体中覆盖的 WndProc 函数?

转载 作者:太空狗 更新时间:2023-10-30 00:55:18 26 4
gpt4 key购买 nike

我有一个在 Windows 窗体中创建的窗体,它可以在我单击的任何地方拖动。我通过覆盖 WndProc 函数实现了它,该函数反过来修改每次点击,因为它是标题栏点击:

    //found at: http://stackoverflow.com/questions/3995009/how-to-make-a-window-draggablec-winforms
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;

///
/// Handling the window messages
///
protected override void WndProc(ref Message message)
{
base.WndProc(ref message);

if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT)
message.Result = (IntPtr)HTCAPTION;
}

问题是,现在当我双击时,窗口变成全屏,这是不需要的。我怎样才能阻止这种行为?

最佳答案

除了 JaredPar,我建议不要以 那种 方式创建可拖动表单,而是分 3 个步骤处理它

  • 识别鼠标在表单上的按下
  • 捕获鼠标
  • 识别鼠标松开事件

处理起来并不复杂,在我看来,禁用双击表单会更好。

有关如何执行此操作的完整示例,请查看

Creating a Draggable Borderless Form

关于c# - 如何阻止双击 Windows 窗体中覆盖的 WndProc 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com