OCULTAR BARRA DE TITULO FORM MDI
Mdi não tem a opção BorderStyle para desabilitar a barra de titulos e os botões, existe alguma possibilidade de fazer isto ?
Tente isto...
Abraço
T+
[/c]
Option Explicit
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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Const WS_CAPTION = &HC00000
Const GWL_STYLE = (-16)
[c]Private Sub MDIForm_Load()
Dim lStyle As Long
lStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
lStyle = lStyle And (Not WS_CAPTION)
SetWindowLong Me.hwnd, GWL_STYLE, lStyle
End Sub
Abraço
T+
[/c]
Coloque o seguinte código no seu Form MDI:
Qualquer dúvida poste...flw
Option Explicit
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 ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_OVERLAPPED = &H0&
Private Const WS_CLIPCHILDREN = &H2000000
Private Const WS_CLIPSIBLINGS = &H4000000
Private Sub MDIForm_Load()
SetWindowLong hwnd, GWL_STYLE, WS_OVERLAPPED Or WS_CLIPCHILDREN Or WS_CLIPSIBLINGS
ShowWindow Me.hwnd, 1
End Sub
Qualquer dúvida poste...flw
- Peguei carona... Muito bom.
E se eu quizesse manter a barra mas ocultar os "botões" para minimizar/maximizar tela e o de encerramento do sistema? Como parametrizar?
Obrigado
E se eu quizesse manter a barra mas ocultar os "botões" para minimizar/maximizar tela e o de encerramento do sistema? Como parametrizar?
Obrigado
Opa, desculpa ai MARCOSAV, vc não tinha postado ainda...
E 4NIBAL, pra fazer da forma como vc quer, é só usar:
E 4NIBAL, pra fazer da forma como vc quer, é só usar:
Option Explicit
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 ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_OVERLAPPED = &H0&
Private Const WS_CLIPCHILDREN = &H2000000
Private Const WS_CLIPSIBLINGS = &H4000000
Private Const WS_BORDER = &H800000
Private Const WS_CAPTION = &HC00000
Private Sub MDIForm_Load()
SetWindowLong Me.hwnd, GWL_STYLE, WS_OVERLAPPED Or WS_CLIPCHILDREN Or WS_CLIPSIBLINGS Or WS_BORDER Or WS_CAPTION
ShowWindow Me.hwnd, 1
End Sub
[S67]
Matioli: é isso aÃ. Perfeito!
Obrigado (a você também, OlÃmpia, pela carona.)
Matioli: é isso aÃ. Perfeito!
Obrigado (a você também, OlÃmpia, pela carona.)
valeu, os dois deu certo
Optei por usar o codigo postado pelo MATIOLI pois fica sem bordas em volta do form
Não consegui postar um anexo com codigo de exemplo do estilo office 2007 link utilizando form mdi e algumas alterações, mas blz. Obrigado
Optei por usar o codigo postado pelo MATIOLI pois fica sem bordas em volta do form
Não consegui postar um anexo com codigo de exemplo do estilo office 2007 link utilizando form mdi e algumas alterações, mas blz. Obrigado
O código parece ser simples, mas demoro um poquim até eu descobrir exatamente como a API retornava as dimensões, mas ta aÃ, funfando (já posiciona e tira a borda):
Qualquer dúvida poste...flw
Option Explicit
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 ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_OVERLAPPED = &H0&
Private Const WS_CLIPCHILDREN = &H2000000
Private Const WS_CLIPSIBLINGS = &H4000000
Private Const SPI_GETWORKAREA = 48
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Private Sub MDIForm_Load()
Dim WR As RECT
'Remove a borda do form
SetWindowLong hwnd, GWL_STYLE, WS_OVERLAPPED Or WS_CLIPCHILDREN Or WS_CLIPSIBLINGS
ShowWindow Me.hwnd, 1
'Posiciona o form para ocupar a tela toda
SystemParametersInfo SPI_GETWORKAREA, 0, WR, 0
Me.Move WR.Left * Screen.TwipsPerPixelX, WR.Top * Screen.TwipsPerPixelY, WR.Right * Screen.TwipsPerPixelX, WR.Bottom * Screen.TwipsPerPixelY
End Sub
Qualquer dúvida poste...flw
Citação:Opa, desculpa ai MARCOSAV, vc não tinha postado ainda...
Tranquilo, Matioli...
Isso acontece de monte !!!
Abraço
T+
Citação:MARCOSAV escreveu:
Opa, desculpa ai MARCOSAV, vc não tinha postado ainda...
Tranquilo, Matioli...
Isso acontece de monte !!!
Abraço
T+
^^
Deu certo, o form não fica sobre a taskbar.
Mas quando executa o move, mesmo que o top estaja igual a zero o form sempre fica abaixo.
Creio que seja o espaço da barra de titulo, pois esta oculta. Tentei mover
-100, mas tambem não deu certo, sabe como fazer ?
Mas quando executa o move, mesmo que o top estaja igual a zero o form sempre fica abaixo.
Creio que seja o espaço da barra de titulo, pois esta oculta. Tentei mover
-100, mas tambem não deu certo, sabe como fazer ?
Tópico encerrado , respostas não são mais permitidas