Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Login  

Compartilhe | 
 

 Desabilitar o botão Fechar e Habilitar somente a opção minimizar no Formulário

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Anacleto



Mensagens : 86
Data de inscrição : 04/04/2012

MensagemAssunto: Desabilitar o botão Fechar e Habilitar somente a opção minimizar no Formulário   Sex Abr 04, 2014 8:30 pm

Boa Tarde

Tenho uma tela onde inclui o código para desabilitar a opção Fechar o formulário, o problema é que preciso Habilitar a opção minimizar o formulário, não estou conseguindo, desta forma venho buscar auxílios ao forum.

Fico no aguardo!

Private Declare Function FindWindowA Lib "USER32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "USER32" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "USER32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Sub UserForm_Initialize()
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H80000

End Sub
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Desabilitar o botão Fechar e Habilitar somente a opção minimizar no Formulário   Sex Abr 04, 2014 11:25 pm

Boa tarde!!

Bom segue uma forma onde tem Max e Min
Faça sua adaptação.
Fonte:
http://www.mrexcel.com/archive/VBA/24009.html
Código:
Option Explicit
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
Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Private Const GWL_STYLE As Long = (-16)
Private Const WS_SYSMENU As Long = &H80000
Private Const WS_MINIMIZEBOX As Long = &H20000
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const SW_SHOWMAXIMIZED = 3

Private Sub UserForm_Activate()
Dim lFormHandle As Long, lStyle As Long

lFormHandle = FindWindow("ThunderDFrame", Me.Caption)

lStyle = GetWindowLong(lFormHandle, GWL_STYLE)

lStyle = lStyle Or WS_SYSMENU
lStyle = lStyle Or WS_MINIMIZEBOX
lStyle = lStyle Or WS_MAXIMIZEBOX

SetWindowLong lFormHandle, GWL_STYLE, (lStyle)

DrawMenuBar lFormHandle

End Sub
Voltar ao Topo Ir em baixo
Ver perfil do usuário
 
Desabilitar o botão Fechar e Habilitar somente a opção minimizar no Formulário
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» [Resolvido]Habilitar e desabilitar o mouse
» DESABILITAR TECLADO VIRTUAL
» PODE FECHAR - Mortal Kombat, LA Noire, Overlord 2 - Me interessa: Rage
» Energia somente passar [Pergunta]
» Opção de segurança - desabilitar

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: