Windows 7では、ボリュームミキサーウィンドウには特定のスタイルがあり、太くて透明な境界線がありますが、タイトルバーはありません。WinFormsウィンドウでそのウィンドウスタイルを再作成するにはどうすればよいですか?
Textをstring.Emptyに設定し、ControlBoxをfalseに設定して、タイトルバーを削除しようとしましたが、境界線も消えます。
Windows 7では、ボリュームミキサーウィンドウには特定のスタイルがあり、太くて透明な境界線がありますが、タイトルバーはありません。WinFormsウィンドウでそのウィンドウスタイルを再作成するにはどうすればよいですか?
Textをstring.Emptyに設定し、ControlBoxをfalseに設定して、タイトルバーを削除しようとしましたが、境界線も消えます。
form.Text = string.Empty;
form.ControlBox = false;
form.FormBorderStyle = FormBorderStyle.SizableToolWindow;
固定サイズのウィンドウの場合はFormBorderStyle.SizableToolWindow
、引き続きを使用する必要がありますが、フォームをオーバーライドして、WndProc
クライアント以外のヒットテスト(サイジングカーソルへの切り替えに使用される)を無視することができます。
protected override void WndProc(ref Message message)
{
const int WM_NCHITTEST = 0x0084;
if (message.Msg == WM_NCHITTEST)
return;
base.WndProc(ref message);
}
サイズを実際に適用したい場合は、フォームにMinimumSize
等しい値を設定することもできます。MaximumSize
form.FormBorderStyle = FormBorderStyle.Fixed3D;