说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

使窗体右上角的X按钮失效 -VB资料

HTML文档下载 WORD文档下载 PDF文档下载
使窗体右上角的X按钮失效 -VB资料

 
  窗体右上角的X按钮通常用来关闭一个程序,这个小X按钮实际上是和系统菜单的“关闭”菜单项关联在一起的,什么?不知道什么是系统菜单,系统菜单是指我们点击窗体左上角的小图标时所弹出的菜单,其中好象有“恢复”、“移动”、“最大化”、“最小化”、“关闭”这么几个按钮。这个菜单用普通的方法是不能编辑和改变的,但是我们可以通过API函数GetSystemMenu来得到它的句柄,然后通过菜单相关的API函数就能改变它了,下面一起看看怎么做吧。

  

  程序中用到了两个API函数GetSystemMenu、RemoveMenu,其中GetSystemMenu函数用来得到系统菜单的句柄,RemoveMenu用来删除指定的菜单条目,我们先来看看这个函数的声明和参数:

   Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

   Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

  其中各GetSystemMenu参数的意义如下表:

参数: 意义
hwnd Long, 系统菜单所在窗口的句柄

bRevert Long,如设为TRUE,表示恢复原始的系统菜单

返回值 Long,如执行成功,返回系统菜单的句柄;零意味着出错。如bRevert设为TRUE,也会返回零(简单的恢复原始的系统菜单)

  而RemoveMenu参数的意义如下表:

参数: 意义
hMenu Long,菜单的句柄

nPosition Long,欲改变的菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零)

wFlags Long,常数MF_BYCOMMAND=&H0&或MF_BYPOSITION=&H400&,取决于nPosition参数
返回值 Long,非零表示成功,零表示失败。

  然后就可以在程序中使用这两个函数了,我们在窗体的Form_Load()过程中加入如下代码:

   MyMenu = GetSystemMenu(Me.hwnd,0)    '得到系统菜单的句柄,Me.hwnd表示当前窗体的句柄

   RemoveMenu MyMenu, &HF060, MF_BYCOMMAND '移去“关闭”菜单项,&HF060“关闭”菜单项的命令ID

  接着我们运行程序,看看窗体右上角的X按钮是不是已经不可点击了,系统菜单中的“关闭”项也消失了,很有趣,不过一定记着为程序留一个“退出”按钮哦!
Delphi 5 Enterprise版10大特点 Delphi 插件创建、调试与使用应用程序扩展 Delphi 程序制作要点 Delphi 中面向对象编程之我见 Delphi”程序级触发器”功能的实现 Delphi4.0系统提示信息的汉化 Delphi5优化 Delphi编程技巧十则 Delphi程序制作要点 Delphi的类型转换 Delphi第三方控件大测评 Delphi多层应用程序的实现 Delphi技巧点滴 Delphi使用经验五则 Delphi使用心得 Delphi拖放编程(1) Delphi拖放编程(2) Delphi系列的Y2K问题 Delphi下编程实现中文输入 Delphi用于读写的三种文件类型 Delphi之三十六计之输入处理篇 DELPHI中DFM文件与文本文件转换 Delphi中用于读写的文件类型 RichEdit的自动格式化-Delphi资料 RichEdit中实现查找功能-Delphi资料 表格上所有元件载入后的事件-Delphi资料 充分利用Windows API扩展Delphi函数 传递焦点的五种方法-Delphi资料 从 实 例 看 Delphi 4 中 的 动 态 得到Memo中当前的行列号-Delphi资料 改变RichEdit的游标位置-Delphi资料 如何分页显示数据库里的图片 怎样判断一个控件是否处在最上层,马上给分? 关于md5编译出错 急需高手解决 哭,IIS下ASP无法调试,极不稳定。求大侠进来帮忙。 请问谁有或者谁知道NASM语法或教程,最好是中文的!谢谢了! 高人!帮忙呀!!!谢谢!! 急啊~关于ADO的和SQL的问题~达人快来帮忙啊 datagrid动态改变一行的背景色this.DataGrid1.Items[oldselectindex].backcolor=System.Drawing.Color.Red;为什么不工作啊? 第一次用ORACLE,在哪里批量执行SQL脚本啊 为什么我的网页不能引用*.js了???在ie/visual studio能设置吗?怎么设置?? 关于日期类型,在线等,马上给分 sql*plus登陆不进去了!! 请问怎么调试DLL中的代码啊??? dddw的数据取值问题,百思不得其解。 再问一个简单问题,为啥函数总是执行两次? 100分求助使用axis开发web services的问题 求一个字符串简单加密算法源码,300分决不食言!!!!! 如何使得下载的excel文件在新页面中打开? datalist问题 帮帮这个菜鸟!!! 新手求助?谁有较好的打印控件,或较好的解次方案? 如何在程序部署时授予某文件夹对文件的写访问权? 不能重定向是什么原因? 想用Mediaplaer控件播放某个声音文件若干次,怎么控制? 如何通过窗口句柄来获得窗口所在进程的ID 怎么找到DataGrid中的Table呢? 请问用VB怎么才能把1个数据库里的表全部读入LISTBOX里? JmaiL 发邮件的问题?? 备份还原问题 如何用钩子得到中文啊? interbase的存储过程中如果想返回多条结果应该怎么办? 请问!谁能提供算命、测字等原代码和后台库!!500分相送!!!! 我的用客户端连上ORACLE,怎么我的SQLPULS打开中文全是乱码,执行语句后看不到结果是什么 方案讨论:如何自定义并实现错误与例外Exception处理对象,并建立里统一的ErrorMsg 读数据库错误??急急急,在线等(马上给分) 缓存 到的 是什么定义啊 (斑竹来 告诉我吧) 系统分析师、系统设计师有什么区别? DB2技术讨论(1)如何简单理解表空间的定义 vc的ado数据库连接问题 请问linux的个人版和服务器版到底有什么区别?? DB2技术讨论(2)如何简单理解表模式的定义 int& operator[] (unsigned i); 存储过程问题 DB2技术讨论(3)如何处理索引 马上结:我用ASP和JSP分别写了一个人主页,可是服务器只支持PHP,所以我要写PHP.. 我要构建一个网吧?回答问题者都有分 DB2技术讨论(4)如何处理大量数据的增删 郁闷,没有理由,再散分一百,随便进来聊聊 昨天真的真的受了刺激 怎樣將dbedit控件的事件和它所在的form方法相關起來? 如何实现DOS工作站连接到LINUX服务器 谁能告诉我这两条数学怎么做? 请问一道高数积分的问题请问图中的积分是如何直接得到答案的?. 需要一篇关于 智绝孔明 的作文,800字.很急很急.最好是原创 有谁提供给我《厚黑学》和《鬼谷子》这两本书的所有内容啊? 隅字怎么读 诸葛亮的故事家喻户晓,如:空城计智退_____,挥泪斩_____等 “隅”字怎么念? 世界上伟大的科学家?比如爱迪生. 高锰酸钾与三氧化二铁怎么反应?怎么进行滴定?滴定终点是用高锰酸钾来看的吗? 在分析化学中高锰酸钾滴定铁氧化铁氧化亚铁时要把铁转化为几价的铁离子才能直接滴定 高数,一道积分的问题 对X 求导后,是1-e^(-(y+x)^2)×(y'+1)=0接着怎么求出带入的点 (0,1) 彭帅/谢淑薇力克强敌 亚洲人首夺总决17国诞生音乐试管婴儿 英国宝贝天生土库曼斯坦庆祝独立22周年马凯会见冰岛总统格里姆松并与总理京勒世界行走日杭州启幕 万人行走钱塘江畔17国诞生音乐试管婴儿 英国宝贝天生中国民企在新一轮变革中谋求机遇怀揣回报桑梓之心 百余浙商会聚杭州青浙江国企力邀民企加盟 推3244亿元向英军提供配件 欲解禁武器出口 日本廊坊数百学生不满校园管理聚集抗议 官《中国梦之声2》寻找全民偶像自制甜品其实没那么难身份证安检“神器”会报警液化气站藏身居民楼个性DIY墨仓式打印机走进南京南京宁星奔驰疑妻出轨 小伙刀砍妻子后自杀“最萌征兵宣传片”为何赢得社会认可会摄影、爱旅游,龙虎网摄影旅游频道上跟着花神过七夕郑爽不谈旧爱偏爱“暖男”马天宇最终生命形态涩殇二蛋修鬼传旋转门之杀神降临超级军师吸血三姊妹载财盘天不可思议欲海官途逆天囚徒乌鲁木齐博物馆旅游感通寺旅游桥中桥旅游叙昌酱园旅游屈原祠旅游平定冠山森林公园旅游正定四塔旅游福庆寺旅游桥楼殿旅游好汉坡南田温泉旅游观澜湖旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘