manuelito Posted March 30, 2012 at 01:18 PM Report #446584 Posted March 30, 2012 at 01:18 PM Bom dia pessoal, sou iniciante em programação e estou desenvolvendo um menuzim. - Tem apenas um Form e preciso que ele fique em tela cheia e bloqueie o ctrl + alt + del e a barra de ferramentas(menu iniciar). Resumindo: o Form q tem ficar sobre tudo e não deixar fazer nada fora dele nem sair dele sem fechar ele. ObrigadoWindows Form acima de tudo
cmd Posted March 30, 2012 at 03:26 PM Report #446621 Posted March 30, 2012 at 03:26 PM Crias uma classe com isto. Imports System.Drawing Imports System.Windows.Forms Imports System.Runtime.InteropServices Namespace Org.Vesic.WinForms ''' <summary> ''' Selected Win AI Function Calls ''' </summary> Public Class WinApi <DllImport("user32.dll", EntryPoint:="GetSystemMetrics")> _ Public Shared Function GetSystemMetrics(ByVal which As Integer) As Integer End Function <DllImport("user32.dll")> _ Public Shared Sub SetWindowPos(ByVal hwnd As IntPtr, ByVal hwndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal width As Integer, ByVal height As Integer, _ ByVal flags As UInteger) End Sub Private Const SM_CXSCREEN As Integer = 0 Private Const SM_CYSCREEN As Integer = 1 Private Shared HWND_TOP As IntPtr = IntPtr.Zero Private Const SWP_SHOWWINDOW As Integer = 64 ' 0x0040 Public Shared ReadOnly Property ScreenX() As Integer Get Return GetSystemMetrics(SM_CXSCREEN) End Get End Property Public Shared ReadOnly Property ScreenY() As Integer Get Return GetSystemMetrics(SM_CYSCREEN) End Get End Property Public Shared Sub SetWinFullScreen(ByVal hwnd As IntPtr) SetWindowPos(hwnd, HWND_TOP, 0, 0, ScreenX, ScreenY, _ SWP_SHOWWINDOW) End Sub End Class ''' <summary> ''' Class used to preserve / restore state of the form ''' </summary> Public Class FormState Private winState As FormWindowState Private brdStyle As FormBorderStyle Private topMost As Boolean Private bounds As Rectangle Private IsMaximized As Boolean = False Public Sub Maximize(ByVal targetForm As Form) If Not IsMaximized Then IsMaximized = True Save(targetForm) targetForm.WindowState = FormWindowState.Maximized targetForm.FormBorderStyle = FormBorderStyle.None targetForm.TopMost = True WinApi.SetWinFullScreen(targetForm.Handle) End If End Sub Public Sub Save(ByVal targetForm As Form) winState = targetForm.WindowState brdStyle = targetForm.FormBorderStyle topMost = targetForm.TopMost bounds = targetForm.Bounds End Sub Public Sub Restore(ByVal targetForm As Form) targetForm.WindowState = winState targetForm.FormBorderStyle = brdStyle targetForm.TopMost = topMost targetForm.Bounds = bounds IsMaximized = False End Sub End Class End Namespace Depois basta: Dim formstate As New NomeDoProjecto.Org.Vesic.WinForms.FormState formstate.maximize(me) E tem o fullscreen 😕 Cumps.cmd
manuelito Posted March 30, 2012 at 06:05 PM Author Report #446671 Posted March 30, 2012 at 06:05 PM obrigado pela ajuda.. então, ele fica sobre tudo(em fullscreen), mas, não está bloqueando os atalhos como ctrl+alt+del e o ctrl+esc.
cmd Posted March 30, 2012 at 08:09 PM Report #446706 Posted March 30, 2012 at 08:09 PM Pois não, eu só dei o código do fullscreen. Googla um bocado 😉 Cumps.cmd
Leudassdf Posted April 29, 2012 at 03:44 PM Report #452048 Posted April 29, 2012 at 03:44 PM cmd eu criei uma class com o codigo que tens: Imports System.Drawing Imports System.Windows.Forms Imports System.Runtime.InteropServices Namespace Org.Vesic.WinForms ''' <summary> ''' Selected Win AI Function Calls ''' </summary> Public Class WinApi <DllImport("user32.dll", EntryPoint:="GetSystemMetrics")> _ Public Shared Function GetSystemMetrics(ByVal which As Integer) As Integer End Function <DllImport("user32.dll")> _ Public Shared Sub SetWindowPos(ByVal hwnd As IntPtr, ByVal hwndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal width As Integer, ByVal height As Integer, _ ByVal flags As UInteger) End Sub Private Const SM_CXSCREEN As Integer = 0 Private Const SM_CYSCREEN As Integer = 1 Private Shared HWND_TOP As IntPtr = IntPtr.Zero Private Const SWP_SHOWWINDOW As Integer = 64 ' 0x0040 Public Shared ReadOnly Property ScreenX() As Integer Get Return GetSystemMetrics(SM_CXSCREEN) End Get End Property Public Shared ReadOnly Property ScreenY() As Integer Get Return GetSystemMetrics(SM_CYSCREEN) End Get End Property Public Shared Sub SetWinFullScreen(ByVal hwnd As IntPtr) SetWindowPos(hwnd, HWND_TOP, 0, 0, ScreenX, ScreenY, _ SWP_SHOWWINDOW) End Sub End Class ''' <summary> ''' Class used to preserve / restore state of the form ''' </summary> Public Class FormState Private winState As FormWindowState Private brdStyle As FormBorderStyle Private topMost As Boolean Private bounds As Rectangle Private IsMaximized As Boolean = False Public Sub Maximize(ByVal targetForm As Form) If Not IsMaximized Then IsMaximized = True Save(targetForm) targetForm.WindowState = FormWindowState.Maximized targetForm.FormBorderStyle = FormBorderStyle.None targetForm.TopMost = True WinApi.SetWinFullScreen(targetForm.Handle) End If End Sub Public Sub Save(ByVal targetForm As Form) winState = targetForm.WindowState brdStyle = targetForm.FormBorderStyle topMost = targetForm.TopMost bounds = targetForm.Bounds End Sub Public Sub Restore(ByVal targetForm As Form) targetForm.WindowState = winState targetForm.FormBorderStyle = brdStyle targetForm.TopMost = topMost targetForm.Bounds = bounds IsMaximized = False End Sub End Class End Namespace Depois deveria declarar isto : Dim formstate As New NomeDoProjecto.Org.Vesic.WinForms.FormState formstate.maximize(me) mas esta declaraçao faço-a onde? e a parte do formstate.maximize(me) e para chamar a classe? Nao percebi bem. e que eu quero que ao clicar num botao ela execute o teu codigo....
cmd Posted April 29, 2012 at 03:46 PM Report #452049 Posted April 29, 2012 at 03:46 PM A declaração fazes na form que queres que fique em fullscreen. Esse formstate.maxime(me) deves colocar no evento do botão, ou outro controlo, quando quiseres que a form fique grande. Cumps.cmd
Leudassdf Posted April 29, 2012 at 04:21 PM Report #452056 Posted April 29, 2012 at 04:21 PM A declaração fazes na form que queres que fique em fullscreen. Esse formstate.maxime(me) deves colocar no evento do botão, ou outro controlo, quando quiseres que a form fique grande. A class cria-te a parte ou tambem foi na parte onde se encontra o codigo do form1 por ex?
Leudassdf Posted April 29, 2012 at 04:26 PM Report #452057 Posted April 29, 2012 at 04:26 PM A class cria-te a parte ou tambem foi na parte onde se encontra o codigo do form1 por ex? Ja agora ao fazer a declaraçao da-me o seguinte erro. Type 'futero_gallery.Org.Vesic.WinForms.FormState' is not defined. O que pode ser?
Lukas S. Posted April 29, 2012 at 05:01 PM Report #452058 Posted April 29, 2012 at 05:01 PM futero_gallery é o nome do projecto ? E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.
cmd Posted April 29, 2012 at 06:31 PM Report #452077 Posted April 29, 2012 at 06:31 PM A classe cria-se num ficheiro próprio para a Class. Não sabes criar classes? Cumps.cmd
Lukas S. Posted April 29, 2012 at 07:05 PM Report #452082 Posted April 29, 2012 at 07:05 PM cmd esqueci de te agradecer ... por acaso funcionou e guardei a classe em .vb pra depois usar noutro programa 😄 E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.
cmd Posted April 29, 2012 at 07:11 PM Report #452084 Posted April 29, 2012 at 07:11 PM Sim funciona 😄 , não tens de quê. Mas os créditos não são meus, vi isso em algum lado, creio que no The CodeProject, mas não me recordo onde. Cumps.cmd
Leudassdf Posted April 29, 2012 at 07:26 PM Report #452091 Posted April 29, 2012 at 07:26 PM A classe cria-se num ficheiro próprio para a Class. Não sabes criar classes? sim sei. O problema e que inicialmente eu tinha um nome no form, depois alterei e pelos vistos deu bug. ja esta resolvido. obrigada cmd!
cmd Posted April 29, 2012 at 08:02 PM Report #452103 Posted April 29, 2012 at 08:02 PM sim sei. O problema e que inicialmente eu tinha um nome no form, depois alterei e pelos vistos deu bug. ja esta resolvido. obrigada cmd! Sempre às ordens 😄 Cumps.cmd
Leudassdf Posted April 30, 2012 at 09:55 PM Report #452365 Posted April 30, 2012 at 09:55 PM cmd so mais uma pergunta no formstate.maximize(me) nao posso colocar em vez de maximizar o form não osso maximizar uma picture box?
cmd Posted April 30, 2012 at 09:57 PM Report #452366 Posted April 30, 2012 at 09:57 PM Com esse código que passei penso que não. Podes é tentar alterar o código para fazer isso 😄 Cumps.cmd
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now