SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Daniel_PC en Lunes 1 de Marzo de 2004, 05:15

Título: Mover Formulario Unidos Como Winamp
Publicado por: Daniel_PC en Lunes 1 de Marzo de 2004, 05:15
Hola me gustaria saber como Mover Formulario Unidos como Winamp
ojala que me puedan mandar un zip o codigo
Gracias por su ayuda......
Título: Re: Mover Formulario Unidos Como Winamp
Publicado por: 9tnix en Miércoles 3 de Marzo de 2004, 15:07
Salu2 Daniel PC

Nunca lo he hecho pero una sugerencia seria capturar las posiciones de tu ventana con relacion al escritorio asi cuando muevas otra ventana y quieres que se junto como el winamp solo debes calcular que tan cerca esta y luego como tienes la posicion de esa ventana la situas junto.

Es solo una sugerencia, espero que por alli sirva
Salu2 zeekel ®
[KGT]
Título: Re: Mover Formulario Unidos Como Winamp
Publicado por: Brroz en Jueves 4 de Marzo de 2004, 15:00
Hola Daniel Pc.

En un principio, mediante Vb no tienes posiblidad de saber cuando el usuario  mueve un formulario... pero si hay una posibilidad de controlarlo: lo que pretendes hacer es posible subclasificando el formulario. Es una técnica en la que estoy muy verde, además de engorrosa y que en su diseño puede tirar el equipo y/o la aplicación (sobre todo si pruebas a debuguear). Se trata de indicar a windows la dirección del procedimiento que procesa el mensaje enviado por la ventana indicando que se ha movido, sustiyendo el procedimiento original por uno propio, que se ejecutará en su lugar. Una vez que realices las acciones que interesen  (en tu caso mover otro formulario según la posición y tamaño del primero), se devuelve el control al procedimiento original.

Esto así a grandes rasgos. Busca en web información y ejemplos sobre subclasificación, que me consta que los hay, aunque la mayoría está en inglés.

Suerte.
Título: Re: Mover Formulario Unidos Como Winamp
Publicado por: 9tnix en Viernes 5 de Marzo de 2004, 07:03
Hola Daniel_PC

hice algo sencillo no se si es lo que buscas
mira el archivo adjunto ojala te sirva

Un saludo zeekel ®
[KGT]
Título: Re: Mover Formulario Unidos Como Winamp
Publicado por: elmango80 en Viernes 5 de Marzo de 2004, 11:18
Hola Daniel_PC!

Lo que tu quieres hacer se hace capturando los mensajes del sistema operativo cuando intentes mover el formulario, no se si te sirva pero el siguiente codigo hace lo que tu quieres pero utilizando Delphi  ;)

Código: Text
  1.  
  2.  
  3.   private
  4.     { Private declarations }
  5.     procedure PegaAlBorde(var m: TWMWINDOWPOSCHANGED);
  6.                         message WM_WINDOWPOSCHANGING&#59;
  7.  
  8. procedure TForm1.PegaAlBorde(var m : TWMWINDOWPOSCHANGED);
  9. const
  10.      {Sensibility}
  11.      Sensibilidad:integer=4;
  12. var
  13.    Dato:TRect;
  14. begin
  15.     try
  16.       {Aqui si el SystemPar... funciona,
  17.                   porque estemos en Win95}
  18.       SystemParametersInfo(SPI_GETWORKAREA,0,@Dato,0);
  19.       if m.windowpos.x<=(Dato.Left+Sensibilidad)
  20.         then m.windowpos.x:=Dato.Left;
  21.       if m.windowpos.y<=(Dato.Top+Sensibilidad)
  22.         then m.windowpos.y:=Dato.Top;
  23.  
  24.       if (m.windowpos.x+Width)>= (Dato.Right-Sensibilidad)
  25.         then m.windowpos.x:=Dato.Right-Width;
  26.       if (m.windowpos.y+Height)>= (Dato.Bottom-Sensibilidad)
  27.         then m.windowpos.y:=Dato.Bottom-Height;
  28.     except
  29.       {Aqui si se trata de NT o algo en donde no tire Systempar...}
  30.       {Here if is NT and Systempar... don't work...}
  31.       if m.windowpos.x<=Sensibilidad then m.windowpos.x:=0;
  32.       if m.windowpos.y<=Sensibilidad then m.windowpos.y:=0;
  33.       if (m.windowpos.x+Width)>= (Screen.Width-Sensibilidad)
  34.         then m.windowpos.x:=Screen.Width-Width;
  35.       if (m.windowpos.y+Height)>= (Screen.Height-Sensibilidad)
  36.         then m.windowpos.y:=Screen.Height-Height;
  37.     end;
  38. end;
  39.  
  40.  


Pero tu lo que quieres es hacerlo con VB y por eso es que estas en este foro y no en el de Delphi. Asi que te mando una aplicacion que hice que mas o menos hace lo que tu quieres. Los formularios tienes que moverlos no por la barra superior sino por el mismo form.
Título: Re: Mover Formulario Unidos Como Winamp
Publicado por: Daniel_PC en Sábado 6 de Marzo de 2004, 00:25
Gracias por Ayudarme, les agradezco mucho
Daniel_PC
Título: Re: Mover Formulario Unidos Como Winamp
Publicado por: elmango80 en Lunes 8 de Marzo de 2004, 07:59
En el mensaje anterior no se porque :whistling: no adjunto el programa hecho en VB, de todos modos aqui lo envio otra vez....