Solved

No x code

Posted on 1998-08-11
4
134 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
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

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

There are many ways to remove duplicate entries in an SQL or Access database. Most make you temporarily insert an ID field, make a temp table and copy data back and forth, and/or are slow. Here is an easy way in VB6 using ADO to remove duplicate row…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
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…

706 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now