建立可移動的無邊框窗體
能否創建一個無邊框窗體,但仍可以透過點擊窗體本身來移動它,就像有邊框的窗體一樣?
答案:
可以。 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中文網其他相關文章!