当前位置:编程学习 > VB >>

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
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
--------------------编程问答-------------------- 以上代码测试通过,坐等结贴 --------------------编程问答-------------------- 我用了skin++的dll --------------------编程问答-------------------- 不过已经解决了
--------------------编程问答-------------------- 直接
-------------------------------------------------------------------------------------
Private Sub MDIForm_Resize()
On Error Resume Next
Me.WindowState = 0
Me.Height = H
Me.Width = W
End Sub
-------------------------------------------------------------------------------------
补充:VB ,  API
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,