Artigo: 300688 - Última revisão: quarta-feira, 31 de Janeiro de 2007 - Revisão: 6.2

Como desactivar o botão Fechar na janela da aplicação e o comando Sair no menu Ficheiro

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

Este artigo aplica-se a uma base de dados do Microsoft Access (.mdb) e a um projecto do Microsoft Access (.adp).

Para obter uma versão de Microsoft Access 2000 deste artigo, consulte 245746  (http://support.microsoft.com/kb/245746/EN-US/ ) .
Para obter uma versão de Microsoft Access 97 deste artigo, consulte 258049  (http://support.microsoft.com/kb/258049/ ) .

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Microsoft Access não possui nenhum método incorporado para desactivar o botão Fechar (X) na janela da aplicação, o comando Fechar o menu de sistema da janela da aplicação ou o comando Sair no menu ficheiro . Este artigo descreve como desactivar programaticamente todos estes elementos.

Mais Informação

atenção : Se seguir os passos neste exemplo, modificará a base de dados de exemplo Adamastor.mdb. Convém cópia de segurança do ficheiro de base de dados Adamastor.mdb e siga estes passos numa cópia da base de dados.

Para desactivar o botão Fechar aplicações e o comando Fechar no menu de sistema , tem de chamar as funções GetSystemMenu e EnableMenuItem da API do Win32.

Para desactivar o comando Sair no menu ficheiro , terá de utilizar a colecção CommandBars , que expõe todas as barras de menus, barras de ferramentas e menus de atalho a aplicação do Visual Basic for Applications, de modo a que pode manipular programaticamente.

A Microsoft fornece exemplos de programação apenas, para fins sem garantia expressa ou implícita. Isto inclui, mas não está limitado a, as garantias implícitas de comercialização ou adequação a um fim específico. Este artigo pressupõe que está familiarizado com a linguagem de programação apresentada e as ferramentas que são utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Exemplo passo a passo

  1. Inicie o Microsoft Access.
  2. Abra a base de dados exemplo Adamastor.mdb.
  3. No menu Inserir , clique em módulo para criar um módulo novo e padrão.
  4. Escreva o seguinte código na secção Declarations:
    Option Compare Database
    Option Explicit
    
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
        ByVal bRevert As Long) As Long
    
    Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As _
        Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
    
    Const MF_GRAYED = &H1&
    Const MF_BYCOMMAND = &H0&
    Const SC_CLOSE = &HF060&
    
    Public Function SetEnabledState(blnState As Boolean)
        Call CloseButtonState(blnState)
        Call ExitMenuState(blnState)
    End Function
    
    'Disable the Menu Option
    Sub ExitMenuState(blnExitState As Boolean)
        Application.CommandBars("File").Controls("Exit").Enabled = blnExitState
    End Sub
    
    'Disable the Close Button Option
    Sub CloseButtonState(boolClose As Boolean)
        Dim hWnd As Long
        Dim wFlags As Long
        Dim hMenu As Long
        Dim result As Long
           
        hWnd = Application.hWndAccessApp
        hMenu = GetSystemMenu(hWnd, 0)
        If Not boolClose Then
            wFlags = MF_BYCOMMAND Or MF_GRAYED
        Else
            wFlags = MF_BYCOMMAND And Not MF_GRAYED
        End If
        
        result = EnableMenuItem(hMenu, SC_CLOSE, wFlags)
    End Sub
    					
  5. No menu ficheiro , clique em Guardar base de dados Adamastor e utilizar o nome predefinido que é apresentado na caixa Nome do módulo , clicando em OK .
  6. Criar um novo formulário com as seguintes características:
       Form: frmSetCloseState
       -------------------------
       Caption: Set Close State
    
       Command button
       ------------------------
       Name: cmdEnable
       Caption: Enable
       OnClick: Event Procedure
    
       Command button
       ------------------------
       Name: cmdDisable
       Caption: Disable
       OnClick: Event Procedure
    					
  7. Na vista de estrutura, clique com o botão direito do rato no botão de comando Activar e clique em Criar eventos no menu que aparece.
  8. Clique em Construtor de código , clique em OK e, em seguida, escreva o seguinte código no módulo resultante:
    Private Sub cmdEnable_Click()
        Call SetEnabledState(True)
    End Sub
    					
  9. Adicione o seguinte código para botão de comando Desactivar
    Private Sub cmdDisable_Click()
        Call SetEnabledState(False)
    End Sub
    					
  10. Guardar o formulário e abra-o na Vista de formulário
Tenha em atenção que o botão de comando Desactivar , no botão Fechar , o comando Fechar da janela da aplicação e o comando Sair no menu ficheiro estão desactivadas. Se clique no botão de comando Activar , estes comandos será reactivados.

Utilização

O código descrito neste artigo permite-lhe activar ou desactivar o botão Fechar , o comando Fechar da janela da aplicação e o comando Sair no menu ficheiro para impedir que utilizadores sair da aplicação utilizando estes métodos facilmente.

Tenha em atenção que esta técnica afecta o botão Fechar na janela da aplicação do Microsoft Access, não no botão Fechar na janela Base de dados. Depois de desactivar estas opções, nem é automaticamente reactivado depois de fecha a base de dados. Se o utilizador fecha a base de dados e deixa o Microsoft Access aberta, o utilizador não poderá sair do Microsoft Access utilizando o botão Fechar ou o comando Sair no menu ficheiro . Neste caso, a aplicação deve reactivar ambas as opções antes que termine. Caso contrário, o utilizador terá de sair e reiniciar o Microsoft Access para que o botão Fechar e o comando Sair no menu ficheiro para ser activado.

A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Palavras-chave: 
kbmt kbvba kbprogramming kbhowto KB300688 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 300688  (http://support.microsoft.com/kb/300688/en-us/ )