首页 >后端开发 >C++ >可以通过单击它们使无边界表格可移动吗?

可以通过单击它们使无边界表格可移动吗?

Patricia Arquette
Patricia Arquette原创
2025-01-24 15:47:12369浏览

Can Borderless Forms Be Made Movable by Clicking on Them?

创建可移动的无边框窗体

能否创建一个无边框窗体,但仍可以通过点击窗体本身来移动它,就像有边框的窗体一样?

答案:

可以。CodeProject 提供了一种详细的技术:

其核心解决方案包括:

<code class="language-c#">public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern bool ReleaseCapture();

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{     
    if (e.Button == MouseButtons.Left)
    {
        ReleaseCapture();
        SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
    }
}</code>

此方法通过向窗口管理器发送消息来模拟抓取窗口标题栏的行为。它模拟了在标题栏区域的左键单击,从而触发与带边框窗体相同的移动机制。

以上是可以通过单击它们使无边界表格可移动吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn