USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Removendo Botão Fechar do MDI

SAO PAULO
SP - BRASIL
Postada em 06/09/2005 17:03 hs         
Oi Galera !!!
 
Alguém sabe como remover o botão fechar de um MDI ? Já vi na sessão dicas como remover o maximizar / minimizar mas fechar ("X") não encontrei ...
 
Valeu !
     
VACA
LIMEIRA
SP - BRASIL
Postada em 08/09/2005 08:03 hs            
Form MDI? axu q naum tem como vc RETIRAR o botaum mais tem como vc fazer com q ele naum execute nenhuma açao, entretanto isso faz com q o form nunca seje fechado.... se for isso q vc quer eh soh colocar cancel=true no evento unload.
Isso serve pra qq form.
entretanto se naum for um MDI eh soh vc mudar o BorderStyle dele pra NONE, assim ele tira todos os botoes (fechar, maximizar e minimizar)
Espero q tenha ajudado

"Quando estou fraco, aí então é que sou Poderoso"
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 08/09/2005 08:45 hs            
Lu,
 
A API do Windows faz isso. Na sessao de Dicas vc deve ter encontrado uma API q desabilita os botoes Maximizar e Minimizar... ela mesma tb desabilita o fechar...
O código abaixo:
____________________________________________________________
Private Const SC_CLOSE = &HF060&
Private Const MF_BYCOMMAND = &H0&
 
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
 
'desabilita do botão FECHAR [x] do form
Public Sub FormDisableCloseButton(myFrm As Form)
    Dim lngHMenu As Long
    lngHMenu = GetSystemMenu(myFrm.hwnd, False)
    RemoveMenu lngHMenu, SC_CLOSE, MF_BYCOMMAND
End Sub
____________________________________________________________
Coloca esse codigo em um módulo no seu sistema...
Basta vc chamar a função FormDisableCloseButton no Load do seu FormMDI pra ele ficar com o botão de fechar Desabilitado.
 
Espero q isso te ajude,


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     

SAO PAULO
SP - BRASIL
Postada em 08/09/2005 11:34 hs         
Não tá funcionando ... coloco todo o codigo acima em um modulo e chamo direto no mdiform a função FormDisableCloseButton ? Passo parâmetro ???
     
Alfterra
Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 08/09/2005 11:53 hs            
copie o código abaixo e cole num módulo
 
'A API abaixo trava todas as opções de um form
'ou só as que você desejar que ele trave
'OBS: esta API também é válida para forms MDI
Public Enum OpcoesForm
    Maximizar = 1
    Tamanho = 2
    Mover = 3
    Minimizar = 4
    Restaurar = 5
    Fechar = 6
End Enum
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
 
Private Const SC_MAXIMIZE = &HF030
Private Const SC_MINIMIZE = &HF020
Private Const SC_MOVE = &HF010
Private Const SC_RESTORE = &HF120
Private Const SC_SIZE = &HF000
Private Const SC_CLOSE = &HF060
Private Const MF_BYCOMMAND = 0
 
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
'Para travar as opções use esta função
Public Sub TravarOpcoes(Opcao As OpcoesForm, gForm As Form)
    Dim hMenu As Long
    hMenu = GetSystemMenu(gForm.hwnd, 0)
    Select Case Opcao
        Case 1
            Call DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND) 'trava o Maximixar
        Case 2
            Call DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND) 'trava o tamanho
        Case 3
            Call DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND) 'trava o mover
        Case 4
            Call DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND) 'trava o minimizar
        Case 5
            Call DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND) 'trava o restaurar
        Case 6
            Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND) 'trava o fechar ( X )
     End Select
End Sub
'por: Alfterra
Public Sub HabilitarX(F As Form)
   Dim hSysMenu As Long
   hSysMenu = GetSystemMenu(F.hwnd, True)
  
End Sub
'chamar
'''Call HabilitarX(nomeForm)
'===========================================================
' para desabilitar as opções do form faça o seguinte
'Private Sub Form_Load() _
Call TravarOpcoes(Fechar, Me) _
Call TravarOpcoes(Maximizar, Me) _
Call TravarOpcoes(Minimizar, Me) _
Call TravarOpcoes(Mover, Me) _
Call TravarOpcoes(Restaurar, Me) _
Call TravarOpcoes(Tamanho, Me) _
End Sub
     

SAO PAULO
SP - BRASIL
Postada em 08/09/2005 12:19 hs         
Valeu !!! Muito obrigada !!!!
 
 
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página