首頁 > 後端開發 > C++ > 如何使無邊框窗體在 Windows 窗體中可移動?

如何使無邊框窗體在 Windows 窗體中可移動?

DDD
發布: 2025-01-24 15:41:09
原創
990 人瀏覽過

How Can I Make a Borderless Form Movable in Windows Forms?

>創建一個可拖動的,無邊界的窗口

>在Windows形式中設計無邊界的形式提供時尚,現代的美學。 但是,這通常會帶來一個挑戰:如何在沒有通常的標題欄或邊界的情況下使表格可移動?本文提供了使用Windows API的解決方案。

關鍵是使用SendMessage>和ReleaseCapture>函數模擬單擊標題欄。 這些API調用有效地欺騙了窗口管理器,即使在沒有可見邊框的情況下,也可以觸發拖放操作。

這是代碼實現:

<code class="language-csharp">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>
登入後複製
>將此代碼添加到表單的

事件處理程序中,您可以通過單擊和拖動表單客戶端區域中的任何地方來拖動和重新定位無邊界的表單。 這提供了所需的功能,而不會損害乾淨,無邊界的設計。

以上是如何使無邊框窗體在 Windows 窗體中可移動?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板