ホームページ >バックエンド開発 >C++ >C#で境界線を移動できるようにするにはどうすればよいですか?

C#で境界線を移動できるようにするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-24 15:31:11627ブラウズ

How Can I Make a Borderless Form Movable in C#?

ウィンドウを移動するためのフレームレスフレームを作成します(C#)

フレームウィンドウはサイズと動きを簡単に調整できますが、これは必ずしも最良の選択ではありません。時々、ボーダーレスデザインが必要な場合がありますが、これは問題をもたらします。フレームなしでウィンドウを移動するにはどうすればよいですか?以下は、この目標を達成する方法です

このメソッドは、タイトルバーウィンドウのWin32 APIシミュレーションベルトを使用しています。次の定数と関数が必要です:

インフィニティウィンドウのムースタウンイベント処理プログラムでは、次のコードが達成されます。

このコードシミュレーションは動作バーをクリックして、ウィンドウ内のどこにでもクリックしてウィンドウ全体を移動できます。左マウスボタンを押すと、キャプチャを解放し、ウィンドウマネージャーにメッセージを送信し、ウィンドウの「タイトルバー」(ht_caption)のボタンが押されていることを示します。この動作をシミュレートすることにより、必要なボーダーレスデザインに影響を与えることなく、窓を境界線のように移動できます。
<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();</code>

以上がC#で境界線を移動できるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。