如以下代码所示可以将窗体系统控制菜单中的最大化菜单项禁止变灰:Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" ( _
    ByVal hMenu As Long, _
    ByVal nPosition As Long, _
    ByVal wFlags As Long, _
    ByVal wIDNewItem As Long, _
    ByVal lpString As Any) As Long
Private Const SC_MAXIMIZE = &HF030&
Private Const MF_BYCOMMAND = &H0
Private Const MF_STRING = &H0
Private Const MF_ENABLED = &H0&
Private Const MF_GRAYED = &H1
Private Const MF_DISABLED = &H2&
Private Declare Function SetWindowPos Lib "user32" ( _
    ByVal hWnd As Long, _
    ByVal hWndInsertAfter As Long, _
    ByVal X As Long, _
    ByVal Y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal wFlags As Long) As Long
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_FRAMECHANGED = &H20        'The frame changed: send WM_NCCALCSIZEPublic Sub Maximize()
    Call ModifyMenu(GetSystemMenu(m_lngWinhWnd, False), SC_MAXIMIZE, MF_BYCOMMAND + MF_STRING + MF_GRAYED + MF_DISABLED, 0&, "最大化(&X)")
    Call SetWindowPos(m_lngWinhWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE + SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED)
End Sub 
可是当我再使用以下代码将禁止变灰的菜单项恢复为可用时怎么却始终不起作用呢?
Call ModifyMenu(GetSystemMenu(m_lngWinhWnd, False), SC_MAXIMIZE, MF_BYCOMMAND + MF_STRING + MF_ENABLED, 0&, "最大化(&X)")
Call SetWindowPos(m_lngWinhWnd, 0&, 0&, 0&, 0&, 0&, SWP_NOMOVE + SWP_NOSIZE + SWP_NOZORDER + SWP_FRAMECHANGED)