Primeiramente quero me desculpar caso já exista algum tópico sobre este assunto. Tentei procurar algo pertinente, mas não encontrei...
Já fiz alguns sisteminhas em access, mas sempre trabalhei com macros. No que diz respeito a programação não entendo absolutamente nada, mas pelo visto terei que colocar algum código no sistema que estou desenvolvendo para resolver meu problema.
Eis o danado do problema:
Preciso desabilitar a opção RESTAURAR, pois o sistema trabalha com as janelas de formulários e relatórios maximizadas. Porém quando fecho um relatório, por exemplo, e há um formulário em segundo plano, este acaba restaurando, quando na verdade quero que continue maximizado.
achei na net algo sobre como fazer isso, mas não consigo inserir esse código (não sei onde nem como colocá-lo no sistema)
o código que achei é esse:
Option Explicit
Private Const WS_THICKFRAME As Long = &H40000
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 SetWindowPos Lib _
"user32" (ByVal hwnd As Long, ByVal _
hWndInsertAfter As Long, ByVal x As Long, _
ByVal y As Long, ByVal cx As Long, ByVal _
cy As Long, ByVal wFlags As Long) As Long
Function DisableResBtn(frm As Form)
Const WS_THICKFRAME = &H40000
Const WS_MAXIMIZE = &H1000000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)
Const SWP_FRAMECHANGED = &H20
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H4
'Const HWND_TOP = 0
Dim nStyle As Long
Dim hwnd As Long
nStyle = GetWindowLong(frm.hwnd, GWL_STYLE)
nStyle = nStyle And Not (WS_THICKFRAME)
nStyle = nStyle And Not (WS_MAXIMIZE)
nStyle = nStyle And Not (WS_MAXIMIZEBOX)
Call SetWindowLong(frm.hwnd, GWL_STYLE, nStyle)
SetWindowPos frm.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER
End Function
================================================
No Evento Ao Carregar
Docmd.maximize
DisableResBtn Me.
Queria umas dicas de como fazer isso funcionar....
Pergunta
samuka_medic
Olá, a todos!
Primeiramente quero me desculpar caso já exista algum tópico sobre este assunto. Tentei procurar algo pertinente, mas não encontrei...
Já fiz alguns sisteminhas em access, mas sempre trabalhei com macros. No que diz respeito a programação não entendo absolutamente nada, mas pelo visto terei que colocar algum código no sistema que estou desenvolvendo para resolver meu problema.
Eis o danado do problema:
Preciso desabilitar a opção RESTAURAR, pois o sistema trabalha com as janelas de formulários e relatórios maximizadas. Porém quando fecho um relatório, por exemplo, e há um formulário em segundo plano, este acaba restaurando, quando na verdade quero que continue maximizado.
achei na net algo sobre como fazer isso, mas não consigo inserir esse código (não sei onde nem como colocá-lo no sistema)
o código que achei é esse:
Option Explicit
Private Const WS_THICKFRAME As Long = &H40000
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 SetWindowPos Lib _
"user32" (ByVal hwnd As Long, ByVal _
hWndInsertAfter As Long, ByVal x As Long, _
ByVal y As Long, ByVal cx As Long, ByVal _
cy As Long, ByVal wFlags As Long) As Long
Function DisableResBtn(frm As Form)
Const WS_THICKFRAME = &H40000
Const WS_MAXIMIZE = &H1000000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)
Const SWP_FRAMECHANGED = &H20
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H4
'Const HWND_TOP = 0
Dim nStyle As Long
Dim hwnd As Long
nStyle = GetWindowLong(frm.hwnd, GWL_STYLE)
nStyle = nStyle And Not (WS_THICKFRAME)
nStyle = nStyle And Not (WS_MAXIMIZE)
nStyle = nStyle And Not (WS_MAXIMIZEBOX)
Call SetWindowLong(frm.hwnd, GWL_STYLE, nStyle)
SetWindowPos frm.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOZORDER
End Function
================================================
No Evento Ao Carregar
Docmd.maximize
DisableResBtn Me.
Queria umas dicas de como fazer isso funcionar....
PS.: o sistema roda em access 2003
Desde já agradeço a atenção!!!
abraços
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.