1.设置maxbutton=false2 设置maxbutton=false Private Sub Form_Load() Me.WindowState = 2 End Sub
1. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const WS_MAXIMIZEBOX = &H10000Private Const WS_THICKFRAME = &H40000Private Const GWL_STYLE = (-16)Private Sub Form_Load() Dim TempLng As Long
TempLng = GetWindowLong(Me.hwnd, GWL_STYLE) TempLng = TempLng And Not WS_MAXIMIZEBOX '最大化 TempLng = TempLng And Not WS_THICKFRAME SetWindowLong Me.hwnd, GWL_STYLE, TempLng
End Sub
在一般窗口下可以,我指的是MDI子窗体.
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 Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long Const MF_BYCOMMAND = &H0& Const MF_REMOVE = &H1000& Const MF_BYPOSITION = &H400&Private Sub MDIForm_Load() Me.WindowState = 2 Dim hSysMenu As Long, nCnt As Long ' Get handle to our form's system menu ' (Restore, Maximize, Move, close etc.) hSysMenu = GetSystemMenu(Me.hwnd, False) If hSysMenu Then ' Get System menu's menu count nCnt = GetMenuItemCount(hSysMenu) If nCnt Then ' Menu count is based on 0 (0, 1, 2, 3...) RemoveMenu hSysMenu, nCnt - 3, MF_BYPOSITION Or MF_REMOVE '去掉最大化 RemoveMenu hSysMenu, 0, MF_BYPOSITION Or MF_REMOVE'去掉还原 End If End If End Sub
1.设置maxbutton=False 2.设置windowstate=2 3.在ChildForm里加 Private Sub Form_Activate() Me.WindowState = 2 End Sub
设置maxbutton=false
Private Sub Form_Load()
Me.WindowState = 2
End Sub
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const WS_MAXIMIZEBOX = &H10000Private Const WS_THICKFRAME = &H40000Private Const GWL_STYLE = (-16)Private Sub Form_Load()
Dim TempLng As Long
TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)
TempLng = TempLng And Not WS_MAXIMIZEBOX '最大化
TempLng = TempLng And Not WS_THICKFRAME
SetWindowLong Me.hwnd, GWL_STYLE, TempLng
End Sub
Private Declare Function RemoveMenu 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
Const MF_BYCOMMAND = &H0&
Const MF_REMOVE = &H1000&
Const MF_BYPOSITION = &H400&Private Sub MDIForm_Load()
Me.WindowState = 2
Dim hSysMenu As Long, nCnt As Long
' Get handle to our form's system menu
' (Restore, Maximize, Move, close etc.)
hSysMenu = GetSystemMenu(Me.hwnd, False)
If hSysMenu Then
' Get System menu's menu count
nCnt = GetMenuItemCount(hSysMenu)
If nCnt Then
' Menu count is based on 0 (0, 1, 2, 3...)
RemoveMenu hSysMenu, nCnt - 3, MF_BYPOSITION Or MF_REMOVE '去掉最大化
RemoveMenu hSysMenu, 0, MF_BYPOSITION Or MF_REMOVE'去掉还原
End If
End If
End Sub
2.设置windowstate=2
3.在ChildForm里加
Private Sub Form_Activate()
Me.WindowState = 2
End Sub
Private Sub Form_Activate()
Me.WindowState = 2
End Sub
这个是肯定可以达到您的效果的:)
form.windowstate=vbMaximized
End Sub
楼上这个办法不太好,能明显看到窗体由一般状态很快恢复到最大状态的过程,有没有更好的办法,还有第二个问题怎样解决?
那应该怎么操作?
2、怎样使窗体运行在最大化状态,并且窗体无最大化按钮?
3、窗体的MDIchild属性为“true”,并且运行于最大化状态时,打开别的MDIchild属性为“true“的窗体时,该窗体会自动变为一般状态,请问有没有办法使该窗体固定不变?1.设置窗体边框为1,那么只有关闭按扭,这时窗体边框不能改变,在将最小化按扭的值设为Ture就可以了,有最小化按扭.
2.3很容易实现了.
2.除非把最小化也去掉,要不然无法去掉最大化
难道不是
maxbutton=false
minbutton=false
啊