VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 11214|回复: 23

[经验技巧] 使窗体最大最小化关闭按钮不可用

[复制链接]
 楼主| 发表于 2008-3-20 10:32:49 | 显示全部楼层 |阅读模式
  1. '*************************************************************************
  2. '**模 块 名:Form1
  3. '**说    明:魔灵圣域 版权所有2008 - 2009(C)
  4. '**创 建 人:郭卫
  5. '**日    期:2008-03-20 10:30:32
  6. '**修 改 人:
  7. '**日    期:
  8. '**描    述:
  9. '**版    本:V1.0.0
  10. '*************************************************************************
  11. Option Explicit
  12. Private Declare Function GetSystemMenu Lib "User32" (ByVal hWnd As Long, _
  13.                                          ByVal bRevert As Long) As Long
  14. Private Declare Function RemoveMenu Lib "User32" (ByVal hMenu As Long, _
  15.                                                   ByVal nPosition As Long, _
  16.                                                   ByVal wFlags As Long) As Long
  17. Private Const SC_SIZE = &HF000&
  18. Private Const MF_REMOVE = &H1000&
  19. Private Declare Function DeleteMenu Lib "User32" (ByVal hMenu As Long, _
  20.                                          ByVal nPosition As Long, _
  21.                                          ByVal wFlags As Long) As Long
  22. Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" _
  23.                                          (ByVal hWnd As Long, ByVal nIndex As Long, _
  24.                                          ByVal dwNewLong As Long) As Long
  25. Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" _
  26.                                          (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  27. Private Const WS_MINIMIZEBOX = &H20000
  28. Private Const WS_MAXIMIZEBOX = &H10000
  29. Private Const SC_CLOSE = &HF060
  30. Private Const GWL_STYLE = (-16)
  31. '得到菜单的项目数
  32. Private Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As Long
  33. Private Const MF_BYPOSITION = &H400&
  34. Private Sub Form_Load()
  35.     Dim MdiMenuHwnd As Long
  36.     Dim hMenu As Long
  37.     '使MDI父窗体的最大化按钮变灰
  38.     hMenu = GetWindowLong(Me.hWnd, GWL_STYLE)
  39.     'hMenu = hMenu And Not (WS_MINIMIZEBOX)     '使最小化按钮变灰
  40.     hMenu = hMenu And Not (WS_MAXIMIZEBOX)     '使最大化按钮变灰
  41.      hMenu = SetWindowLong(Me.hWnd, GWL_STYLE, hMenu)
  42.     '删除MDI父窗体菜单中的最大化菜单、最小化菜单和关闭菜单
  43.     MdiMenuHwnd = GetSystemMenu(hWnd, False)
  44.     DeleteMenu MdiMenuHwnd, 4, &H400&          '删除最大化菜单
  45.     'DeleteMenu MdiMenuHwnd, 3, &H400&          '删除最小化菜单
  46.     '注意:如果两个都要删除的话必须先删除最大化才可实现
  47.     '屏蔽掉拖拉鼠标窗体
  48.     RemoveMenu MdiMenuHwnd, SC_SIZE, MF_REMOVE
  49.     '屏蔽关闭按钮和菜单
  50.     '第一个是删除关闭菜单并使关闭按钮变灰
  51.     hMenu = GetMenuItemCount(MdiMenuHwnd)
  52.     DeleteMenu MdiMenuHwnd, hMenu - 1, MF_BYPOSITION
  53.     '这个是删除菜单分界线
  54.      hMenu = GetMenuItemCount(MdiMenuHwnd)
  55.      DeleteMenu MdiMenuHwnd, hMenu - 1, MF_BYPOSITION
  56. End Sub
复制代码

[ 本帖最后由 icecept 于 2009-2-19 01:13 编辑 ]

使窗体最大最小化关闭按钮不可用.rar

2.9 KB, 下载次数: 732

评分

参与人数 4威望 +26 人气 +2 收起 理由
bruly + 5 + 1 很给力
红色狂想 + 1 + 1 发布源码
仙剑魔 + 10 考虑全面 删除菜单可以避免点击右上角 ...
VB爬虫 + 10 精品文章

查看全部评分

发表于 2008-3-20 10:35:26 | 显示全部楼层
哦~~
这个可能会用到!谢谢LZ的分享
支持一下
回复 支持 反对

使用道具 举报

发表于 2008-3-23 09:18:45 | 显示全部楼层
上次调过,调不出来的说。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-23 11:05:36 | 显示全部楼层
kekeya2008 ,调不出来是什么意思?我已经调试成功了
回复 支持 反对

使用道具 举报

发表于 2008-3-23 12:05:21 | 显示全部楼层
不错,很有用!
回复 支持 反对

使用道具 举报

发表于 2008-3-23 23:16:42 | 显示全部楼层
可以先收藏!
回复 支持 反对

使用道具 举报

发表于 2008-3-24 13:00:10 | 显示全部楼层
好贴,已经拷贝到我空间保存收藏了。
谢谢分享所得。
回复 支持 反对

使用道具 举报

发表于 2008-3-28 11:14:39 | 显示全部楼层
支持,感谢楼主分享
回复 支持 反对

使用道具 举报

发表于 2008-3-28 16:18:48 | 显示全部楼层
最大化和最小化不是可以直接关闭的吗?
不过关闭按钮好像不能直接去掉的。
积极学习中。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-28 16:51:09 | 显示全部楼层

使窗体最大最小化关闭按钮不可用附图

QQ截图未命名.jpg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2019-11-22 12:52

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表