VB skin++ MDI窗口禁止最大化、最小化按钮
如题,我用了skin++,但是MDI窗口没法用API禁止最大化、最小化按钮了,求教 --------------------编程问答-------------------- 你是怎么禁止的?贴一下失败的代码 --------------------编程问答-------------------- 最好不显示最大化、最小化按钮 --------------------编程问答-------------------- 失败的API代码:-------------------------------------------------------------------------------------
Private Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private 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 MDIForm_Load()
Dim L As Long
L = GetWindowLong(Me.hwnd, GWL_STYLE)
L = L And Not (WS_MINIMIZEBOX)
L = L And Not (WS_MAXIMIZEBOX)
L = SetWindowLong(Me.hwnd, GWL_STYLE, L)
End Sub
------------------------------------------------------------------------------------- --------------------编程问答-------------------- 会结贴么? --------------------编程问答--------------------
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long--------------------编程问答-------------------- 以上代码测试通过,坐等结贴 --------------------编程问答-------------------- 我用了skin++的dll --------------------编程问答-------------------- 不过已经解决了
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex 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 DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private Const MF_DISABLED = &H2&
Private Const MF_ENABLED = &H0&
Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)
Private Sub MDIForm_Load()
'以下禁止最大化,最小化
Dim L As Long
L = GetWindowLong(Me.hwnd, GWL_STYLE)
L = L And Not (WS_MINIMIZEBOX)
L = L And Not (WS_MAXIMIZEBOX)
L = SetWindowLong(Me.hwnd, GWL_STYLE, L)
'以下去掉系统菜单中的最大化,最小化和还原
Dim nCount As Long
hMenu = GetSystemMenu(Me.hwnd, 0)
nCount = GetMenuItemCount(hMenu)
Call RemoveMenu(hMenu, nCount - 3, MF_DISABLED Or MF_BYPOSITION)
DrawMenuBar Me.hwnd
Call RemoveMenu(hMenu, nCount - 4, MF_DISABLED Or MF_BYPOSITION)
DrawMenuBar Me.hwnd
Call RemoveMenu(hMenu, nCount - 7, MF_DISABLED Or MF_BYPOSITION)
DrawMenuBar Me.hwnd
End Sub
--------------------编程问答-------------------- 直接
-------------------------------------------------------------------------------------
Private Sub MDIForm_Resize()
On Error Resume Next
Me.WindowState = 0
Me.Height = H
Me.Width = W
End Sub
-------------------------------------------------------------------------------------
补充:VB , API