Solved

No x code

Posted on 1998-08-11
4
176 Views
Last Modified: 2010-05-18
Can anyone tell me the VB5 code the will no remove or disable the close (x) button on the top left of any window.
The thing is I want to do this without removeing or disabling the minimize button.

So I need the minimize button, but want rid of the close button.

Peat, Thanks.
0
Comment
Question by:peat042998
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 9

Accepted Solution

by:
cymbolic earned 40 total points
ID: 1468540
following code is from VBNet:
Add the following code to a BAS module:
------------------------------------------------------------------------



Option Explicit

Public Const MF_BYPOSITION = &H400
Public Const MF_REMOVE = &H1000

Public Declare Function DrawMenuBar Lib "user32" _
      (ByVal hwnd As Long) As Long
     
Public Declare Function GetMenuItemCount Lib "user32" _
      (ByVal hMenu As Long) As Long
     
Public Declare Function GetSystemMenu Lib "user32" _
      (ByVal hwnd As Long, _
       ByVal bRevert As Long) As Long
       
Public Declare Function RemoveMenu Lib "user32" _
      (ByVal hMenu As Long, _
       ByVal nPosition As Long, _
       ByVal wFlags As Long) As Long'--end block--'
   


 Form Code  
To test, add the following into a command button. Shown here is the code called from the form's Load sub:
------------------------------------------------------------------------



Option Explicit

Private Sub Form_Load()

   Dim hMenu As Long
   Dim menuItemCount As Long

  'Obtain the handle to the form's system menu
   hMenu = GetSystemMenu(Me.hwnd, 0)
 
   If hMenu Then
     
     'Obtain the number of items in the menu
      menuItemCount = GetMenuItemCount(hMenu)
   
     'Remove the system menu Close menu item.
     'The menu item is 0-based, so the last
     'item on the menu is menuItemCount - 1
      Call RemoveMenu(hMenu, menuItemCount - 1, _
                      MF_REMOVE Or MF_BYPOSITION)
   
     'Remove the system menu separator line
      Call RemoveMenu(hMenu, menuItemCount - 2, _
                      MF_REMOVE Or MF_BYPOSITION)
   
     'Force a redraw of the menu. This
     'refreshes the titlebar, dimming the X
      Call DrawMenuBar(Me.hwnd)

   End If
   
End Sub


'--end block--'
   
0
 
LVL 18

Expert Comment

by:deighton
ID: 1468541
Below is code to disable unload using the x.  You can still unload using an exit key if you set bExit = true before unload me.  This works if the window is a VB form.


(declarations)


Dim bExit As Boolean


Private Sub Form_Unload(Cancel As Integer)

    If bExit = False Then
        Cancel = True
    End If
       
End Sub

Private Sub Command1_Click()
    bExit = True
    Unload Me
End Sub




0
 

Author Comment

by:peat042998
ID: 1468542
Thanks, that was bril!!!
0
 
LVL 13

Expert Comment

by:Mirkwood
ID: 1468543
Bought This Question.
0

Featured Post

Enroll in June's Course of the Month

June’s Course of the Month is now available! Experts Exchange’s Premium Members, Team Accounts, and Qualified Experts have access to a complimentary course each month as part of their membership—an extra way to sharpen your skills and increase training.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question