Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: xDark en 25 Enero 2010, 16:35 pm



Título: Hacer que mi form trabaje como un dock
Publicado por: xDark en 25 Enero 2010, 16:35 pm
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.


Título: Re: Hacer que mi form trabaje como un dock
Publicado por: diego_lp en 26 Enero 2010, 16:02 pm
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.


Título: Re: Hacer que mi form trabaje como un dock
Publicado por: raul338 en 26 Enero 2010, 16:18 pm
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 ;-)


Título: Re: Hacer que mi form trabaje como un dock
Publicado por: seba123neo en 26 Enero 2010, 16:34 pm
proba esto:

Código
  1. Public Class Form1
  2.    Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
  3.    Public Declare Function GetSystemMenu Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
  4.    Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Integer) As Integer
  5.  
  6.    Public Const MF_DISABLED As Integer = &H2&
  7.    Public Const MF_BYPOSITION As Integer = &H400&
  8.  
  9.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  10.        Me.Location = New Point(0, 0)
  11.        Me.TopMost = True
  12.        Call DeshabilitarMovimiento(Me)
  13.    End Sub
  14.  
  15.    Private Sub DeshabilitarMovimiento(ByRef oForm As System.Windows.Forms.Form)
  16.        Call RemoveMenu(GetSystemMenu(oForm.Handle, False).ToInt32, 1, MF_DISABLED Or MF_BYPOSITION)
  17.        Call DrawMenuBar(oForm.Handle.ToInt32)
  18.    End Sub
  19. End Class

saludos.


Título: Re: Hacer que mi form trabaje como un dock
Publicado por: 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/ (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)


Título: Re: Hacer que mi form trabaje como un dock
Publicado por: elmaro en 27 Enero 2010, 15:39 pm
Aca lo tienes en ingles: http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/b75dd62c-92ba-4551-a7bf-a039a67b156c/ (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


Título: Re: Hacer que mi form trabaje como un dock
Publicado por: xDark en 10 Febrero 2010, 17:47 pm
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.