1
在winforms應用程序中找到一種方法可以輕鬆找到,但在XNA中,我無法使代碼片段按預期工作。我也不想禁用系統按鈕,我仍然需要最大化和最小化按鈕。如何隱藏遊戲窗體的關閉按鈕?
如何禁用XNA遊戲窗體上的關閉按鈕(x)而不禁用其他按鈕?
在winforms應用程序中找到一種方法可以輕鬆找到,但在XNA中,我無法使代碼片段按預期工作。我也不想禁用系統按鈕,我仍然需要最大化和最小化按鈕。如何隱藏遊戲窗體的關閉按鈕?
如何禁用XNA遊戲窗體上的關閉按鈕(x)而不禁用其他按鈕?
在代碼中定義這個
[DllImport("user32.dll")]
static extern bool EnableMenuItem(IntPtr hMenu, uint uIDEnableItem, uint uEnable);
[DllImport("user32.dll")]
static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
internal const UInt32 SC_CLOSE = 0xF060;
internal const UInt32 MF_ENABLED = 0x00000000;
internal const UInt32 MF_GRAYED = 0x00000001;
internal const UInt32 MF_DISABLED = 0x00000002;
internal const uint MF_BYCOMMAND = 0x00000000;
然後使用這個功能來啓用或禁用關閉按鈕
public void EnableOrDisableCloseButton(bool Enabled)
{
IntPtr hSystemMenu = GetSystemMenu(this.Window.Handle, false);
EnableMenuItem(hSystemMenu, SC_CLOSE, (uint)(MF_ENABLED | (Enabled ? MF_ENABLED : MF_GRAYED)));
}