MDI EM MODO FULLSCREEN

GUSTAVO145 01/08/2012 17:55:26
#407047
Alguem sabe por favor, como deixo um formulario MDI (ou um form normal mesmo), em modo fullscreen, tampando inclusive a barra de tarefas do windows? Obrigado.
MARCELO.TREZE 01/08/2012 18:37:10
#407050
um form normal se você colocar border style = 3 - FixedDialog, e maximized = True e fica sobre tudo inclusive a barra de tarefas.

no MDI não encontrei codigo que fize-se isso, porém existe uma maneria de vc colocar um form dentro de uma picturebox e simular o MDI.


GUSTAVO145 01/08/2012 19:01:06
#407051
Citação:

:
um form normal se você colocar border style = 3 - FixedDialog, e maximized = True e fica sobre tudo inclusive a barra de tarefas.

no MDI não encontrei codigo que fize-se isso, porém existe uma maneria de vc colocar um form dentro de uma picturebox e simular o MDI.




Então, tenho uma rotina aqui que oculta a barra de tarefas do windows, só que o problema é que se o usuario maximizar o MDI, ele oculpa somente o espaço padrão, e fica um [Ô]boraco[Ô] no espaço onde é o local da barra de tarefas. Alguem saberia como bloquear o botão maximizar? (mas com o minimizar funcionando, por favor)

ROTINA PAAR OCULTAR BARRA DE FERRAMENTAS QUE CITEI:

Private Sub MDIForm_Load()
Me.Height = Screen.Height
Me.Width = Screen.Width

Dim rtn As Long
rtn = FindWindow([Ô]Shell_traywnd[Ô], [Ô][Ô]) [ô]get the Window
Call SetWindowPos(rtn, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
End Sub






Private Sub MDIForm_Unload(Cancel As Integer)

rtn = FindWindow([Ô]Shell_traywnd[Ô], [Ô][Ô]) [ô]get the Window
Call SetWindowPos(rtn, 0, 0, 0, 0, 0, SWP_SHOWWINDOW)
End Sub

Em um modulo:



Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_SHOWWINDOW = &H40

Declare Function FindWindow Lib [Ô]user32[Ô] Alias [Ô]FindWindowA[Ô] (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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


MARCELO.TREZE 01/08/2012 19:32:10
#407055
eu não tinha lido o problema do maximizar, mas eis ai uma solução que achei:
bom basta mudar a propriedade moveable para false, e pronto.

no módulo cole


Public Const WS_MINIMIZEBOX As Long = &H20000
Public Const WS_MAXIMIZEBOX As Long = &H10000
Public Const GWL_STYLE As Long = (-16)

Public Const SWP_HIDEWINDOW = &H80
Public Const SWP_SHOWWINDOW = &H40

Declare Function FindWindow Lib [Ô]user32[Ô] Alias [Ô]FindWindowA[Ô] (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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

Declare Function SetWindowLong Lib [Ô]user32[Ô] _
Alias [Ô]SetWindowLongA[Ô] (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As _
Long) As Long
Declare Function GetWindowLong Lib [Ô]user32[Ô] _
Alias [Ô]GetWindowLongA[Ô] (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long



e no form


Private Sub MDIForm_Load()
Dim rtn As Long
Dim lWnd As Long
lWnd = GetWindowLong(Me.hwnd, GWL_STYLE)
[txt-color=#007100][ô]Tira o botão de minimizar[/txt-color]
lWnd = lWnd And Not (WS_MINIMIZEBOX)

[txt-color=#007100] [ô]Tira o botão de maximizar[/txt-color]
lWnd = lWnd And Not (WS_MAXIMIZEBOX)

lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)

rtn = FindWindow([Ô]Shell_traywnd[Ô], [Ô][Ô]) [ô]get the Window
Call SetWindowPos(rtn, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
End Sub



Private Sub MDIForm_Resize()
Me.Left = 0
Me.Top = 0
Me.Width = Screen.Width
Me.Height = Screen.Height
End Sub


Private Sub MDIForm_Unload(Cancel As Integer)
rtn = FindWindow([Ô]Shell_traywnd[Ô], [Ô][Ô]) [ô]get the Window
Call SetWindowPos(rtn, 0, 0, 0, 0, 0, SWP_SHOWWINDOW)
End Sub

GUSTAVO145 01/08/2012 19:44:03
#407056
Marcelo, obrigado pela atenção, a rotina realmente ocultou o botão maximizar, mas só um probleminha, sumiu tambem o botão de minimizar rs. O ideal seria manter o minimizar e o fechar. Você sabe como fazer isso? Se não souber tudo bem, a gente se vira com o que tem mesmo. Obrigado pela ajuda!
MARCELO.TREZE 01/08/2012 19:49:15
#407057
Resposta escolhida
só tirar esta linha

[ô]Tira o botão de minimizar
lWnd = lWnd And Not (WS_MINIMIZEBOX)
GUSTAVO145 01/08/2012 19:53:35
#407058
hahaha nem tinha lido suas anotações, Perfeito! Vou fechar o tópico.
Tópico encerrado , respostas não são mais permitidas