让窗体的关闭按钮无效

有很多时候我们需要让窗体的关闭按钮无效,所以。。。。

首先引入命名空间。

using System.Runtime.InteropServices;

然后DllImport以及常量声明。      

[DllImport("user32", EntryPoint = "GetSystemMenu", SetLastError = true,
CharSet 
= CharSet.Unicode, ExactSpelling = true,
CallingConvention 
= CallingConvention.Winapi)]
private static extern IntPtr GetSystemMenu(IntPtr hwnd, int bRevert);

[DllImport(
"user32", EntryPoint = "DeleteMenu", SetLastError = true,
CharSet 
= CharSet.Unicode, ExactSpelling = true,
CallingConvention 
= CallingConvention.Winapi)]
private static extern int DeleteMenu(IntPtr hMenu, int nPosition, int wFlags);

[DllImport(
"user32", EntryPoint = "GetMenuItemCount", SetLastError = true,
CharSet 
= CharSet.Unicode, ExactSpelling = true,
CallingConvention 
= CallingConvention.Winapi)]
private static extern int GetMenuItemCount(IntPtr hMenu);

int mf_byposition = 0x00000400;

然后再Form_Load中写。  

IntPtr longVal = GetSystemMenu(this.Handle, 0);
int longCount = GetMenuItemCount(longVal);

DeleteMenu(longVal, longCount 
- 1, mf_byposition);

 

posted on 2006-04-24 14:45  萝卜青菜  阅读(579)  评论(2编辑  收藏  举报

导航