让最大化和最小化按钮消失声明: Private Declare Function SetWindowLong Lib "user32" _ Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal _ nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal _ nIndex As Long) As Long Const WS_MINIMIZEBOX = &H20000 Const WS_MAXIMIZEBOX = &H10000 Const GWL_STYLE = (-16) 使用: Private Sub Form_Load() Dim lWnd As Long lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)lWnd = lWnd And Not (WS_MINIMIZEBOX) lWnd = lWnd And Not (WS_MAXIMIZEBOX) lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd) End Sub
基于删除系统菜单实现的: Option Explicit Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Const SC_MAXIMIZE = &HF030& Private Const SC_MINIMIZE = &HF020& Private Const SC_RESTORE = &HF120& Private Const MF_BYCOMMAND = &H0& Private Sub Form_Load() Dim hMenu As Long hMenu = GetSystemMenu(Me.hwnd, 0) Call DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND) Call DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND) Call DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND) End Sub
MDI没有MinButton,MaxButton属性的,你试试再说好吗?
to:rainstormmaster(暴风雨 v2.0) (
用API的贴子多是多,但我没找到,请给源代码好吗?谢谢!!
Private Declare Function SetWindowLong Lib "user32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal _
nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal _
nIndex As Long) As Long
Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)
使用:
Private Sub Form_Load()
Dim lWnd As Long
lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)lWnd = lWnd And Not (WS_MINIMIZEBOX)
lWnd = lWnd And Not (WS_MAXIMIZEBOX)
lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)
End Sub
Option Explicit
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Const SC_MAXIMIZE = &HF030&
Private Const SC_MINIMIZE = &HF020&
Private Const SC_RESTORE = &HF120&
Private Const MF_BYCOMMAND = &H0&
Private Sub Form_Load()
Dim hMenu As Long
hMenu = GetSystemMenu(Me.hwnd, 0)
Call DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND)
Call DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND)
Call DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND)
End Sub
你的第一种方法,删掉最大化,最小化按钮不行,虽然删掉了,但还可以用,第二种方法,这种比较好一些。谢谢你的参与。