ホームページ >バックエンド開発 >C++ >WPF ウィンドウの閉じるボタンを非表示にしたままにする方法

WPF ウィンドウの閉じるボタンを非表示にしたままにする方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-02 16:23:38962ブラウズ

How to Hide the Close Button in a WPF Window While Keeping the

WPF Windows で閉じるボタンを非表示にする

WPF でモーダル ダイアログを作成するには、表示されたタイトル バーを維持しながら、閉じるボタンのないウィンドウが必要です。 ResizeMode、WindowState、WindowStyle などのプロパティを調べても、この特定のニーズを満たすものはありません。

これに対処するには、P/Invoke を利用してウィンドウのスタイルを操作し、目的の動作を実現します。その方法は次のとおりです。

  1. 次の宣言を Window クラスに追加します。

    private const int GWL_STYLE = -16;
    private const int WS_SYSMENU = 0x80000;
    [DllImport("user32.dll", SetLastError = true)]
    private static extern int GetWindowLong(IntPtr hWnd, int nIndex);
    [DllImport("user32.dll")]
    private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
  2. Window の Loaded イベントにこれを含めます。コード:

    var hwnd = new WindowInteropHelper(this).Handle;
    SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);

によってこのコードを実行すると、タイトル バーから閉じるボタンが非表示になり、より直感的なモーダル ダイアログ エクスペリエンスが確保されます。

重要な考慮事項:

このソリューションでは非表示になります。視覚的に閉じるボタンですが、ユーザーがキーボード ショートカット (Alt F4 など) またはタスクバーを使用してウィンドウを閉じることを妨げるものではありません。ウィンドウが早期に閉じられないようにするには、OnClosing イベントをオーバーライドし、Cancel を true に設定することを検討してください。

以上がWPF ウィンドウの閉じるボタンを非表示にしたままにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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