我刚学VB,很菜。在做软件时为了美观,想把没用的最大化按钮移除,只保留最小化和关闭按钮。我现在目前只实现了最大化按钮失效,不能鼠标拖动改变大小。有知道的朋友告诉一声哈!越详细越好。在此先谢了哈!
解决方案 »
- 检索'#'在.TXT文件中首次出现的位置
- 在 datagrid 中的中文字段中如何使用上下键?
- 图标问题??????
- 请高手来看一下这样1个函数应该如何写呢,(有源码+分析)
- 求vb里面调用自己写的Active DLL方法
- 请教各位,我用wise installation system(9.01)打包程序生成程序管理组后,为什么反安装不能删除创建的程序组?
- vb中如何使用类似 vbSendMail.dll 这样的dll 阿
- 为什么一个窗体为mdi窗体的子窗体时运行会出现非法操作?而独立窗体就不会?
- 高手来拿分,我想做上网计费软件,能不能给点思路,或者原程序
- 怎樣查詢紀錄的前三筆?
- 不能加载控件mschart1 许可证未找到
- VB 关于读取文件字节的效率问题
方法是让minbutton=true
第二步:设置 minButton=true
Dim lWnd As Long
lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)
lWnd = lWnd And Not WS_MINIMIZEBOX'改成lWnd = lWnd And WS_MINIMIZEBOX不行的
lWnd = lWnd And Not WS_MAXIMIZEBOX
lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)但不能只去掉最大化按钮,只能让它失效。
窗体的minbutton设为true
这样就可以了1
Option Explicit
'第一种方法
Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Declare Function DeleteMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As Long
Public Const MF_BYPOSITION = &H400&'第二种方法
'Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Declare Function RemoveMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Declare Function DrawMenuBar Lib "User32" (ByVal hwnd As Long) As Long
'Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As Long
'Public Const MF_BYPOSITION = &H400&
Public Const MF_DISABLED = &H2&'第一种方法
Public Sub DisableX(Frm As Form)
Dim hMenu As Long, nCount As Long
hMenu = GetSystemMenu(Frm.hwnd, 0)
nCount = GetMenuItemCount(hMenu)
Call RemoveMenu(hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION)
DrawMenuBar Frm.hwnd
End Sub
'=======================窗体============================
Private Sub Form_Load()
'第一种方法
Dim hwndMenu As Long
Dim c As Long
hwndMenu = GetSystemMenu(Me.hwnd, 0)
c = GetMenuItemCount(hwndMenu)
DeleteMenu hwndMenu, c - 1, MF_BYPOSITION
c = GetMenuItemCount(hwndMenu)
DeleteMenu hwndMenu, c - 1, MF_BYPOSITION
'第二种方法
'Call DisableX(Me)
End Sub
为什么要偏要说“改成lWnd = lWnd And WS_MINIMIZEBOX不行的
”明明是去掉这句lWnd = lWnd And Not WS_MINIMIZEBOX就OK的简单问题,为何复杂化,误人子弟!