Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long Private Const MF_BYPOSITION = &H400& Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Sub Form_Load() Dim hwndMenu As Long Dim c As Long hwndMenu = GetSystemMenu(Me.hwnd, 0) c = GetMenuItemCount(hwndMenu) DeleteMenu hwndMenu, c - 3, MF_BYPOSITION End Sub 这样可以把最大化菜单屏蔽,同时双击也不能最大化了。 c代表第几个菜单,如果把c-3改为c-1,则关闭菜单屏蔽。
双击:163
右击down:164
右击up: 165你试试用子类化,捕获这些消息,然后屏蔽掉
然后把controlbox属性设置为false
即可
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Sub Form_Load()
Dim hwndMenu As Long
Dim c As Long
hwndMenu = GetSystemMenu(Me.hwnd, 0)
c = GetMenuItemCount(hwndMenu)
DeleteMenu hwndMenu, c - 3, MF_BYPOSITION
End Sub
这样可以把最大化菜单屏蔽,同时双击也不能最大化了。
c代表第几个菜单,如果把c-3改为c-1,则关闭菜单屏蔽。