2013-02-06 2 views
1

Несколько проще найти способ сделать это в приложении winforms, но в XNA я не могу сделать фрагменты кода работающими по назначению. Я также не хочу вообще отключать системные кнопки, мне все же нужно максимизировать и минимизировать кнопки.Как скрыть кнопку закрытия формы игры?

Как отключить кнопку закрытия (x) в форме XNA без отключения других кнопок?

ответ

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))); 
} 
Смежные вопросы