Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Programming / November 2007

Tip: Looking for answers? Try searching our database.

Disable close button on Word 2007 Options

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
FIF - 16 Nov 2007 08:35 GMT
Hi

I am using the following vba code to disable the close button of
MSWord. It works fine in all previous version of word but does not
work for word 2007.
Any ideas how to disable the close button of word 2007.

Thanks in advance.

Public Declare Function FindWindow Lib "User32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As
Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu 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 ModifyMenu Lib "User32" Alias
"ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal
wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As String) As
Long
Private Declare Function DrawMenuBar Lib "User32" (ByVal hwnd As Long)
As Long

Private Const MF_BYPOSITION = &H400&
Private Const MF_REMOVE = &H1000&

Private Sub DesactiveX()
   'désactiver croix de fermeture
   On Error Resume Next
   Dim Handle As Long
   Dim hMenu As Long
   Dim nCount As Long
   Handle = FindWindow("OpusApp", vbNullString)
   hMenu = GetSystemMenu(Handle, 0)
   nCount = GetMenuItemCount(hMenu)
   Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
End Sub
Russ - 23 Nov 2007 09:28 GMT
FIF,
Try changing the Window Class Name in your code
http://www.cpearson.com/excel/OfficeAppsWindowClasses.aspx
http://users.skynet.be/am044448/Programmeren/VBA/vba_class_names.htm

"OpusApp" --> "NetUIHWND"

> Hi
>
[quoted text clipped - 34 lines]
>     Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
> End Sub

Signature

Russ

drsmN0SPAMikleAThotmailD0Tcom.INVALID

FIF - 26 Nov 2007 08:40 GMT
Thanks for the answer, but it does not solve the issue. Both OpusApp and
NetUIHWND windows are created when launching a word 2007 instance.
But only OpusApp seems to have a system menu which does not seem to support
the former RemoveMenu API.
Any other ideas ?

> FIF,
> Try changing the Window Class Name in your code
[quoted text clipped - 41 lines]
> >     Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
> > End Sub
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.