VBA TIPS
Managing the Minimize, Maximize and system menu buttons

The following code would remove the Minimize, Maximize and system menu buttons from the title bar of Excel application.



Example

Place the following in a standard module module.

Option Explicit

Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000
Private Declare Function GetWindowLong Lib "user32" _
      Alias "GetWindowLongA" _
      (ByVal hWnd As Long, _
      ByVal nIndex As LongAs Long
Private Declare Function SetWindowLong Lib "user32" _
      Alias "SetWindowLongA" _
      (ByVal hWnd As Long, _
      ByVal nIndex As Long, _
      ByVal dwNewLong As LongAs Long
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As LongAs Long

Sub RemoveSysMenu()
  Dim lRet As Long
  Dim hWnd As Long
  Dim lwnd_style As Long
  hWnd = GetActiveWindow()
  lwnd_style = GetWindowLong(hWnd, GWL_STYLE)
  lwnd_style = lwnd_style And (Not WS_SYSMENU)
  lRet = SetWindowLong(hWnd, GWL_STYLE, lwnd_style)
  lRet = DrawMenuBar(hWnd)
End Sub

Sub MakeSysMenuDefaultAgain()
  Dim lRet As Long
  Dim hWnd As Long
  Dim lwnd_style As Long
  hWnd = GetActiveWindow()
  lwnd_style = GetWindowLong(hWnd, GWL_STYLE)
  lwnd_style = lwnd_style Or WS_SYSMENU
  lRet = SetWindowLong(hWnd, GWL_STYLE, lwnd_style)
  lRet = DrawMenuBar(hWnd)
End Sub





| HOME |
Copyright © cellmasters.net - colo's junk room All Right Reserved
ABOUT
WORKS
THE CELL MASTERS
CONTACT
LINKS
Tips and Information about Microsoft Excel|Masaru Kaji aka Colo