Home |
Search |
Today's Posts |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I did'nt try to use it for excel but here is something which I use in
Access to disable the close button. Following code is a class module. I think with a small adaptation it could be useful : Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long 'Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Long, lpMenuItemInfo As MENUITEMINFO) As Long Private Type MENUITEMINFO cbSize As Long fMask As Long fType As Long fState As Long wID As Long hSubMenu As Long hbmpChecked As Long hbmpUnchecked As Long dwItemData As Long dwTypeData As String cch As Long End Type Const MF_GRAYED = &H1& Const MF_BYCOMMAND = &H0& Const SC_CLOSE = &HF060& Public Property Get Enabled() As Boolean Dim hWnd As Long Dim hMenu As Long Dim result As Long Dim MI As MENUITEMINFO MI.cbSize = Len(MI) MI.dwTypeData = String(80, 0) MI.cch = Len(MI.dwTypeData) MI.fMask = MF_GRAYED MI.wID = SC_CLOSE hWnd = Application.hWndAccessApp hMenu = GetSystemMenu(hWnd, 0) result = GetMenuItemInfo(hMenu, MI.wID, 0, MI) Enabled = (MI.fState And MF_GRAYED) = 0 End Property Public Property Let Enabled(boolClose As Boolean) Dim hWnd As Long Dim wFlags As Long Dim hMenu As Long Dim result As Long hWnd = Application.hWndAccessApp hMenu = GetSystemMenu(hWnd, 0) If Not boolClose Then wFlags = MF_BYCOMMAND Or MF_GRAYED Else wFlags = MF_BYCOMMAND And Not MF_GRAYED End If result = EnableMenuItem(hMenu, SC_CLOSE, wFlags) End Property --- Message posted from http://www.ExcelForum.com/ |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Complex lookup task for a newbies | Excel Worksheet Functions | |||
a few simple newbies questions | Excel Programming |