2013-02-06 63 views
1

在winforms應用程序中找到一種方法可以輕鬆找到,但在XNA中,我無法使代碼片段按預期工作。我也不想禁用系統按鈕,我仍然需要最大化和最小化按鈕。如何隱藏遊戲窗體的關閉按鈕?

如何禁用XNA遊戲窗體上的關閉按鈕(x)而不禁用其他按鈕?

回答

3

在代碼中定義這個

[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))); 
}