Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: BenRu en 5 Abril 2006, 20:46 pm



Título: Form que ocupe TODA la pantalla
Publicado por: BenRu en 5 Abril 2006, 20:46 pm
Esto puede parecer facil, y de hecho, creo que lo es xD..

Lo que quiero es hacer que un form ocupe TODA la pantalla, incluyendo la barra de inicio, bandeja de sistema,etc.
Y que al pasarlo de una pantalla con una resolucion a otra, no pase nada y siga bien...como puedo hacerlo?

Un saludo ;)


Título: Re: Form que ocupe TODA la pantalla
Publicado por: Cicklow en 5 Abril 2006, 22:14 pm
esto te ayudara, si estas tratando de crear un cyber control... tendras que ver otras cosas con respecto al teclado, pero si es un protector de pantalla, solo lo del movimiento del mouse, pero si es otra cosa jejejeje....


aka esto te dara una idea:
http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?txtCriteria=screen+saver&blnWorldDropDownUsed=TRUE&txtMaxNumberOfEntriesPerPage=10&blnResetAllVariables=TRUE&lngWId=1&B1=Quick+Search&optSort=Alphabetical


Título: Re: Form que ocupe TODA la pantalla
Publicado por: Ironhorse en 5 Abril 2006, 23:14 pm
En principio tendrias que poner el formulario siempre visible:

Código:
Private Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = 1
Private Const SWP_NOMOVE = 2
Private Const HWND_NOTOPMOST = -2
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

Call SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)

Luego tendrias que llevar el tamaño del form al de la pantalla con los datos del objeto Screen, el problema es que no reconoce los cambios de resolucion cuando se está ejecutando, asi que también deberías usar alguna llamada de la API, no se cual.


Título: Re: Form que ocupe TODA la pantalla
Publicado por: BenRu en 5 Abril 2006, 23:49 pm
Ya me paso un code acosta.sergi...

Es un proyecto un poco privado xD...

Una cosa...si yo tengo varios form y decido minimizar uno...no lo podre ver, puesto que el form inicial lo tapa...como puedo arreglar esto?  :rolleyes:


Título: Re: Form que ocupe TODA la pantalla
Publicado por: Ironhorse en 6 Abril 2006, 01:11 am
"Visualmente" no se me ocurre nada, pero podes recorrer la coleccion Forms y jugar un poco con eso (ver si está minimizado, etc)

Saludos


Título: Re: Form que ocupe TODA la pantalla
Publicado por: BenRu en 6 Abril 2006, 15:28 pm
"Visualmente" no se me ocurre nada, pero podes recorrer la coleccion Forms y jugar un poco con eso (ver si está minimizado, etc)

Saludos

No entiendo a que te refieres...

Lo que quiero es que al minimizar yo algo, se me quede en el form y no afuera..me entienden?

Un saludo


Título: Re: Form que ocupe TODA la pantalla
Publicado por: MazarD en 6 Abril 2006, 15:35 pm
Emm, pues que el form que ocupa toda la pantalla sea mdi.
O que el form que quieres minimizar sea toolbox, al forzarle que se minimize se quedará suelto fuera de la barra y podrás situarlo dónde guste. O sino ya lo último crearte tu los botones de maximizar.

No se si he respondido lo que buscabas pero esque es un poco díficil de entender, y mas si no te terminas de explicar por ser privado el proyecto :P.

Un saludo


Título: Re: Form que ocupe TODA la pantalla
Publicado por: BenRu en 6 Abril 2006, 15:49 pm
Bueno, imaginate que es como el escritorio de windows...

Tu tienes una aplicacion abierta, y cuando le das a minimizar se te va a la barra donde esta el boton inicio...pues yo quiero que haga igual pero encima del form principal.

Un saludo


Título: Re: Form que ocupe TODA la pantalla
Publicado por: xXnewbieXx en 6 Abril 2006, 16:05 pm
 :P y esto no serviría??

Código:
    Form1.Width = Screen.Width
    Form1.Height = Screen.Height


Título: Re: Form que ocupe TODA la pantalla
Publicado por: BenRu en 6 Abril 2006, 17:08 pm
:P y esto no serviría??

Código:
    Form1.Width = Screen.Width
    Form1.Height = Screen.Height
Eso ya lo tengo solucionado, aparte, de esa forma, se agranda para abajo y hacia la derecha, pero no queda perfectamente cubierto del todo.

Bueno, imaginate que es como el escritorio de windows...

Tu tienes una aplicacion abierta, y cuando le das a minimizar se te va a la barra donde esta el boton inicio...pues yo quiero que haga igual pero encima del form principal.

Un saludo

Y alguien sabe esto?


Título: Re: Form que ocupe TODA la pantalla
Publicado por: xXnewbieXx en 6 Abril 2006, 17:41 pm
Citar
Eso ya lo tengo solucionado, aparte, de esa forma, se agranda para abajo y hacia la derecha, pero no queda perfectamente cubierto del todo.

sí, se rueda a la drcha debido a la posicion dl frm. En las propiedades si cambias StartUpPosition a "2 - CenterScreen" se keda perfectamente alineado.
weno hace tiempo k hice esto para un proyecto, pero m parece q era así...



Título: Re: Form que ocupe TODA la pantalla
Publicado por: xXnewbieXx en 6 Abril 2006, 18:04 pm
x cierto si kiers q tp c vea la barra d herramientas kixas sea 1 chapuza,pero yo kito el caption dl frm y tbn el controlbox y ya ocupa todo.
y la verdad para q c mantenga el tamaño = a la pantalla dps d cambiar la resolución lo uniko k c m ocurre es una cosa asi...

Código:
'el frm centrado "CenterScreen" y al cargar q esté

en el load:
'creo k habria q ponerlo en el load aparte de en el timer pq sino, aunq esté centrado al empezar el timer, c agrandaria a la drcha y hacia abajo.

Form1.Width = Screen.Width
Form1.Height = Screen.Height

en un timer:
Form1.Width = Screen.Width
Form1.Height = Screen.Height

 :-\ pero m da k tbn es una chapuza, cuestión d probarlo...( ;D es k aki no tengo el vb)

saludos!


Título: Re: Form que ocupe TODA la pantalla
Publicado por: MazarD en 6 Abril 2006, 19:03 pm
Pues lo que te decia, si haces que el form que ocupa toda la pantalla sea mdi todos los que contenga se minimizarán dentro de ella, no en la barra de inicio.

Si lo anterior no te vale por lo que sea también podrías crear los forms sin borde y al hacer el .windowstate=vbminimized tampoco se irian a la barra de menú inicio luego con setwindowpos blablabla lo meterías donde quisieras.
Pero claro, al estar sin bordes no podrías mover el formulario cuando estubiera en su estado normal, para solucionar esto i además poderte crear una barra de título bien bonita xD podrías usar el siguiente código que implementé hace tiempo para algo similar.

En un módulo:

Código:
'Módul Simulador barra de títol
'MazarD@gmail.com

Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private varbooleana As Boolean
Private xanterior As Single
Private yanterior As Single

Public Sub MovBarra(ByRef FormularI As Form, ByVal Boto As Integer, ByVal x As Single, ByVal y As Single)
Dim PosPunt As POINTAPI
If Boto = 1 Then
    If varbooleana = True Then
        xanterior = x
        yanterior = y
        varbooleana = False
    End If
    GetCursorPos PosPunt
    FormularI.Left = (PosPunt.x * Screen.TwipsPerPixelX) - xanterior
    FormularI.Top = PosPunt.y * Screen.TwipsPerPixelY - yanterior
 
Else
    varbooleana = True
End If
End Sub

Para utilizarlo creas un label que hará el papel de barra de título y:
Private Sub Label5_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
MovBarra Form1, Button, x, y
End Sub


Suerte


Título: Re: Form que ocupe TODA la pantalla
Publicado por: morpheusoliver en 14 Abril 2006, 03:29 am
no te vale con:

Me.BorderStyle = 0
Me.WindowState = 2

???

___________________

sorry man, no verifike antes de posetear, por lo que veo la fincion borderstyle no hace caso por codigo xD, haslo manualmente, en modo grafico, seleccionas el form, y en las propiedades buscas borderstyle, y le pones 0-none

saludos¡¡


Título: Re: Form que ocupe TODA la pantalla
Publicado por: BenRu en 14 Abril 2006, 21:50 pm
No se, ahora pruebo lo de MazarD y morpheusoliver y os cuento