CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

请教如何屏蔽关闭按钮?

楼主cellblue(cellblue)2006-03-21 08:49:17 在 .NET技术 / C# 提问

在WinForm中,如何屏蔽关闭按钮?  
   
  同时需要保留标题栏、最小化按钮、最大化按钮。  
   
  不可以在Closing进行拦截,因为这样的话会导致计算机无法重新启动。  
   
  问题点数:100、回复次数:12Top

1 楼fellowcheng(鹰击长空)回复于 2006-03-21 09:03:09 得分 0

不如自己做个带     标题栏、最小化按钮、最大化按钮的panel,替换系统默认的Top

2 楼zlz_212(ShREk)回复于 2006-03-21 09:08:00 得分 0

同意楼上的意见,自己动手,丰衣足食Top

3 楼BearRui(孤熊 | 带你去看海!)回复于 2006-03-21 09:09:30 得分 0

只能自己做!!!Top

4 楼dragonfly001(I want to fly!)回复于 2006-03-21 09:10:00 得分 0

#region   攔截Windows消息    
  [DllImport("user32.dll",EntryPoint="GetSystemMenu")]    
  extern   static   System.IntPtr   GetSystemMenu(System.IntPtr   hWnd   ,   System.IntPtr   bRevert);    
  static   int   MF_BYPOSITION   =   0x400;    
  static   int   MF_REMOVE   =   0x1000;  
   
  [DllImport("user32.dll",EntryPoint="RemoveMenu")]    
  extern   static   int   RemoveMenu   (IntPtr   hMenu,   int   nPos,   int   flags);    
  private   const   int   WS_SYSMENU   =   0x00080000;    
   
  protected   override   CreateParams   CreateParams    
  {    
  get    
  {    
  CreateParams   cp   =     base.CreateParams;    
  cp.Style   =   cp.Style   &   ~WS_SYSMENU;    
  return   cp;    
  }    
  }  
  #endregion  
  這樣就OK了Top

5 楼mooddecode1980(心情解码)回复于 2006-03-21 09:11:04 得分 0

:)  
   
   
   
   
   
   
   
  -Top

6 楼dragonfly001(I want to fly!)回复于 2006-03-21 09:11:46 得分 40

加上這段屏蔽關閉信息  
  #region   攔截Windows消息  
  protected   override   void   WndProc(ref   Message   m)  
  {  
  const   int   WM_SYSCOMMAND   =   0x0112;  
  const   int   SC_CLOSE   =   0xF060;  
  if   (m.Msg   ==   WM_SYSCOMMAND   &&   (int)   m.WParam   ==   SC_CLOSE)  
  {//捕捉關閉窗體消息  
  //   User   clicked   close   button  
  this.WindowState   =   FormWindowState.Minimized;  
  return;  
  }  
  base.WndProc(ref   m);  
  }  
  #endregionTop

7 楼dragonfly001(I want to fly!)回复于 2006-03-21 09:15:03 得分 0

第一次發惡把關閉按鈕去掉了     ,第二次發的通過攔截關閉信息來達到效果:)Top

8 楼aiur2000(破愿立志别故里,荆棘南下思北风)回复于 2006-03-21 09:17:11 得分 0

做个头,最大最小调用就行了,还可以做美观Top

9 楼yf1025(小桥,流水,人家)回复于 2006-03-21 09:17:47 得分 60

[DllImport("user32.dll")]  
                  internal   static   extern   IntPtr   GetSystemMenu(IntPtr   hwnd,bool   bRevert);  
   
                  [DllImport("user32.dll")]  
                  internal   static   extern   int   GetMenuItemCount(IntPtr   hMenu);  
   
                  [DllImport("user32.dll")]  
                  internal   static   extern   int   RemoveMenu(IntPtr   hMenu,int   uPosition,int   uFlags);  
   
                  ///   <summary>  
                  ///   窗体的关闭按钮失效  
                  ///   </summary>  
                  protected   void   CloseButtonEnable(){  
                          //   默认窗口去除关闭按钮  
                          const   int   MF_BYPOSITION   =   0x00000400;  
   
                          IntPtr   hWindow   =   this.Handle;  
                          IntPtr   hMenu   =   GetSystemMenu(hWindow,false);  
                          int   count   =   GetMenuItemCount(hMenu);  
                          RemoveMenu(hMenu,count   -   1,MF_BYPOSITION);  
                          RemoveMenu(hMenu,count   -   2,MF_BYPOSITION);  
                  }Top

10 楼cellblue(cellblue)回复于 2006-03-21 10:09:48 得分 0

还真蛮复杂的  
  Top

11 楼cellblue(cellblue)回复于 2006-03-21 10:18:09 得分 0

dragonfly001(我思考,我生存!)       的方法是把整个的标题栏按钮都去掉了,  
   
   
  yf1025(小桥,流水,人家)   的方法可行Top

12 楼cellblue(cellblue)回复于 2006-03-21 10:19:35 得分 0

再问一下,如果不屏蔽关闭按钮的情况下,点击了关闭按钮让它执行最小化操作该如何处理?  
  Top

相关问题

  • 如何屏蔽最小,最大和关闭按钮?
  • 如何屏蔽表单中的关闭按钮?
  • 如何屏蔽浏览器的关闭按钮?
  • 如何屏蔽多文档下子窗口的关闭按钮?
  • 如何屏蔽窗体右上角的关闭按钮啊?
  • 请教:如何屏蔽掉cmd中的关闭按钮
  • 如何屏蔽窗体上关闭按钮
  • 如何屏蔽掉ESC键而不影响窗口关闭按钮的功能?
  • 如何屏蔽标题栏中的最大化最小化和关闭按钮
  • window.open 如何屏蔽弹出窗口的关闭"X"按钮?急,在线等待,

关键词

  • 屏蔽
  • 消息
  • 按钮
  • 关闭
  • removemenu
  • createparams
  • byposition
  • hmenu
  • 最小化
  • intptr

得分解答快速导航

  • 帖主:cellblue
  • dragonfly001
  • yf1025

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo