Hacer que mi form trabaje como un dock

Iniciado por xDark, 25 Enero 2010, 16:35 PM

0 Miembros y 2 Visitantes están viendo este tema.

xDark

Hola, quisiera saber como puedo hacer que mi formulario trabaje como un dock, cuando este en la parte superior y si se maximizan las ventanas del escritorio estas no lo cubran y siempre quede visible, mi aplicacion la estoy haciendo en C# pero si tienen un ejemplo en otro lenguaje tambien les agradeceria que lo coloquen, o si tienen algun link donde pueda conseguir mas info pues se los agradeceria.

diego_lp

Hola.
A ver si logro entender lo que quieres...¿lo que tu quieres es que el formulario quede "siempre visible"? Si es eso pues tienes una propiedad del formulario llamada TopMost que por defecto está en False, la cambias a True y listo, el formulario quedará como siempre visible  ;D
Saludos.
Los programadores hicimos un pacto con Dios, él no hace sistemas y nosotros no hacemos milagros!

raul338

Nop, el no quiere eso (a parte, esa propiedad es para formularios de nuestra aplicacion, no de todas las que estan abiertas) sino el quiere que quede fijo su formulario en algun borde de la pantalla y que no se mueva y que nada lo tape. Algo asi como el formulario del Ampliador o de los controladores de los cibers... cosa que no se como hacer ;-)

seba123neo

proba esto:

Código (vbnet) [Seleccionar]

Public Class Form1
    Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
    Public Declare Function GetSystemMenu Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
    Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Integer) As Integer

    Public Const MF_DISABLED As Integer = &H2&
    Public Const MF_BYPOSITION As Integer = &H400&

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = New Point(0, 0)
        Me.TopMost = True
        Call DeshabilitarMovimiento(Me)
    End Sub

    Private Sub DeshabilitarMovimiento(ByRef oForm As System.Windows.Forms.Form)
        Call RemoveMenu(GetSystemMenu(oForm.Handle, False).ToInt32, 1, MF_DISABLED Or MF_BYPOSITION)
        Call DrawMenuBar(oForm.Handle.ToInt32)
    End Sub
End Class


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

raul338

#4
Aca lo tienes en ingles: http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/b75dd62c-92ba-4551-a7bf-a039a67b156c/

yo ahora lo estoy viendo.... haciendo unas pruebas :P

EDIT: Bueno eso funciona, ahora....pregunto....alguien sabe como hacer para que se siga viendo aun cuando algo esta en pantalla completa?? (mas aun si es un juego, ej que use directX si no es mucho pedir :xD)

elmaro

Cita de: raul338 en 26 Enero 2010, 17:08 PM
Aca lo tienes en ingles: http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/b75dd62c-92ba-4551-a7bf-a039a67b156c/

yo ahora lo estoy viendo.... haciendo unas pruebas :P


Esta excelente! Lo acabo de probar, voy a ver que utilidad le puedo dar jeje

Saludos

xDark

Muchisimas gracias Raul338, sobre lo de DirectX tu aplicacion tiene que ser dibujada por esas librerias pero no hay forma de que los videos o demas aplicaciones que esten usando ese render se acomoden a las dimensiones de tu aplicacion, simplemente quedan debajo de ella. Bueno Gracias por la ayuda me sirvio de mucho.