Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

Remove the Close command from the system menu

Total Hit ( 3234)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


If you want to prevent the user from closing a form by using Alt+F4 or by clicking on the "X" button in the upper-right corner you just need to write some code in the form's QueryUnload event procedure:

Click here to copy the following block
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  If UnloadMode = vbFormControlMenu Then Cancel = True
End Sub

However, if you want to give the user a visual clue that the she can't manually close the form, you can programmatically remove the Close command from the form's system menu. This action indirectly grays the "X" button and disables the Alt+F4 key. Here is the code that does the trick:

Click here to copy the following block
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, _
  ByVal nPosition As Long, ByVal wFlags 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_REMOVE = &H1000&

Private Sub Form_Load()
  Dim hMenu As Long
  Dim itemCount As Long
  ' get the handle of the system menu
  hMenu = GetSystemMenu(Me.hWnd, 0)
  ' get the number of items in the menu
  itemCount = GetMenuItemCount(hMenu)
  'remove the system menu Close menu item
  RemoveMenu hMenu, itemCount - 1, MF_REMOVE Or MF_BYPOSITION
  'remove the system menu separator line
  RemoveMenu hMenu, itemCount - 2, MF_REMOVE Or MF_BYPOSITION
End Sub


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.