Menu
 
 
 
 
 
 


Valid XHTML 1.0 Transitional
Valid CSS!

Visual Basic for Application:

Ocultar o botão X de um formulario - JJoão (08/2002)


Tal como a macro anterior a intenção é prevenir o encerramento do formulário através do botão fechar ou X, sendo esta medida mais drástica, fazendo o botão desaparecer. 
Recorremos a rotinas da API do Windows, assim colocamos num modulo:

Private Declare Function FindWindow Lib "user32" _
                 Alias "FindWindowA" _
                       (ByVal lpClassName As String, _
                        ByVal lpWindowName As String) _
                        As Long

Private Declare Function GetWindowLong Lib "user32" _
                  Alias "GetWindowLongA" _
                        (ByVal hWnd As Long, _
                         ByVal nIndex As Long) _
                         As Long

Private Declare Function SetWindowLong Lib "user32" _
                  Alias "SetWindowLongA" _
                        (ByVal hWnd As Long, _
                         ByVal nIndex As Long, _
                         ByVal dwNewLong As Long) _
                         As Long
Const GWL_STYLE = (-16)
Const WS_SYSMENU = &H80000

Macro que em conjunto com as rotinas acima irá eliminar o botão X

Sub EscondeX(xForm)
    Dim hWnd As Long
    Dim GetStyle As Long
    Dim StApp As String
    Select Case Int(Val(Application.Version))
           Case 8
             'Formulario em MSExcel97
              StApp = "ThunderXFrame"
           Case Is > 8
             'Formulario em MSExcel200x
              StApp = "ThunderDFrame"
    End Select
    hWnd = FindWindow(StApp, xForm.Caption)
    GetStyle = GetWindowLong(hWnd, GWL_STYLE)
    'foi-se o X
    SetWindowLong hWnd, GWL_STYLE, GetStyle And Not WS_SYSMENU
End Sub

No código do formulário, para que o botão X nem sequer chegue a aparecer, colocamos isto

Private Sub UserForm_Initialize()
        EscondeX Me
End Sub 

Utilidades
 
Transito em directo
 
O Tempo
 
Gerador de Chaves
 
Moedas - Taxas e Cambios
 
 
 
 
 
Classifique o nosso website
@ MUNDOPT.COM
 
Topo