首頁 > 後端開發 > C++ > 如何使用 P/Invoke 隱藏 WPF 視窗中的關閉按鈕?

如何使用 P/Invoke 隱藏 WPF 視窗中的關閉按鈕?

Linda Hamilton
發布: 2025-01-03 02:37:38
原創
475 人瀏覽過

How Can I Hide the Close Button in a WPF Window Using P/Invoke?

如何在WPF Windows 中隱藏關閉按鈕:P/Invoke 解決方案

在WPF 中,隱藏關閉按鈕可能是理想的選擇在模式對話方塊中,同時保留標題列。雖然內建 WPF 屬性不提供此功能,但利用 P/Invoke 提供了一種解決方法。

步驟1:宣告相關常數和DllImport 函數

開始將以下常數和DllImport 宣告新增至您的視窗class:

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 步:在Loaded事件中隱藏關閉按鈕

接下來,將此程式碼包含在Window 的Loaded 事件中:
var hwnd = new WindowInteropHelper(this).Handle;
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
登入後複製

預計結果:

預計結果:

預計結果:

執行這些步驟後,關閉按鈕將從標題列中消失,而標題列本身仍然可見。 重要提示:雖然隱藏了關閉按鈕,但使用者仍可使用鍵盤快速鍵或工作列關閉視窗。為了防止這種情況,請考慮重寫 OnClosing 事件並將 Cancel 設為 true,如另一個答案中所建議的。

以上是如何使用 P/Invoke 隱藏 WPF 視窗中的關閉按鈕?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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