WinDa DLLs и тому подобное
using System.Runtime.InteropServices;
private const int MF_BYPOSITION = 0x400;
private const int MF_REMOVE = 0x1000;
private const int MF_DISABLED = 0x2;
[DllImport("user32.Dll")]
public static extern IntPtr RemoveMenu(int hMenu, int nPosition, long wFlags);
[DllImport("User32.Dll")]
public static extern IntPtr GetSystemMenu(int hWnd, bool bRevert);
[DllImport("User32.Dll")]
public static extern IntPtr GetMenuItemCount(int hMenu);
[DllImport("User32.Dll")]
public static extern IntPtr DrawMenuBar(int hwnd);
public void DisableCloseButton(int hWnd)
{
IntPtr hMenu;
IntPtr menuItemCount;
//Obtain the handle to the form's system menu
hMenu = GetSystemMenu(hWnd, false);
// Get the count of the items in the system menu
menuItemCount = GetMenuItemCount(hMenu.ToInt32());
// Remove the close menuitem
RemoveMenu(hMenu.ToInt32(), menuItemCount.ToInt32() - 1, MF_DISABLED | MF_BYPOSITION);
// Remove the Separator
RemoveMenu(hMenu.ToInt32(), menuItemCount.ToInt32() - 2, MF_DISABLED | MF_BYPOSITION);
// redraw the menu bar
DrawMenuBar(hWnd);
}
// Впишите куда надо (оно вызывает всю эту эрунду)
DisableCloseButton(this.Handle.ToInt32());//В режиме компелятора не работает, а просто так - работает, как по маслу
Ели что пишите сюда, а я, ели буду находить, буду помогоать :)
Зачем здесь дублировать PInvoke.net ? :o