![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Gestionar el evento OnMouseMove de la barra de titulo del Form
Hola amigos, estoy investigando un poco como funcionan las ventanas MDI y que desconocia que hacian y las veo muy utiles pero ahora tengo un par de dudas. He hecho que pueda arrastar el form MDIChild y gestionando los eventos OnMouseMove, OnMouseDown, y OnMouseUp controlo para que la ventana no se pueda salir del form que la contiene, o sea, salirse no se puede salir pero me refiero a que no se pueda salir de la zona visible. Ahora me gustaria hacer lo mismo pero en este caso arrastrando la barra de titulo del form hijo y no veo la manera de controlar esos eventos en la barra de titulo. Imagino que iran por aqui pero cambiando alguna cosa: http://www.clubdelphi.com/foros/show...oton+minimizar
La otra duda es que con mi codigo controlo que el form hijo no se pueda salir pero aun asi si mueves el raton muy rapido llega a salirse un poquito aunque lo arreglo en el evento OnMouseUp pero mientras arrastro me muestra los Scrolls del form padre y me gustaria saber si hay alguna manera de hacer que estos no aparezcan aunque me salga ya que no se ve bien. ¿podeis ayudarme? |
#3
|
||||
|
||||
Lo siento pero me pierdo porque no tengo ni idea de delphi y aunque se parece pero me pierdo. Ahora mismo tengo esto:
En el .h: Código PHP:
Código PHP:
|
#4
|
||||
|
||||
Estas manejando el mensaje WM_SYSCOMMAND y debes manejar WM_MOVING en la ventana child que se está moviendo. Este mensaje se produce antes de que el movimiento de ejectue, por lo que podrás evitar salirte del límite sin el efecto que comentabas más arriba, al mover deprisa el ratón.
Cita:
Saludos. Última edición por escafandra fecha: 19-10-2015 a las 19:47:48. |
#5
|
||||
|
||||
Ok muchísimas gracias. Intentare seguir probando a ver que consigo pero la verdad es que el que no sabe es como el que no ve y voy dando palos de ciego.
|
#6
|
||||
|
||||
Ejemplo simple reescribiendo la función virtual WndProc de un formulario:
Código PHP:
Código PHP:
Saludos. |
#7
|
||||
|
||||
Muy bien, guiandome de tu codigo y de otro que encontré por la red en ruso pude sacar este codigo:
En el .h Código PHP:
Código PHP:
Última edición por aguml fecha: 20-10-2015 a las 09:45:27. |
#8
|
||||
|
||||
He intentado editar el mensaje anterior pero he llegado tarde por muy poquito y ya no me dejaba asi que lo pongo aqui. Ya he conseguido hacerlo. Al final coji papel y lapiz y lo plantee sobre el papel y me di cuenta de los fallos y asi quedó:
En el .h: Código PHP:
Código PHP:
|
#9
|
||||
|
||||
Pues la traducción del ejemplo que te puse al sistema de tratamiento de mensajes tipo delphi sería esta:
Código PHP:
Código PHP:
|
#10
|
||||
|
||||
Ok muchas gracias. Seguiré investigando.
|
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Popup de la barra de titulo | _cero_ | C++ Builder | 2 | 05-06-2008 18:02:21 |
cual es el evento contrario a onmousemove? | carlosmat21 | Gráficos | 3 | 20-07-2007 16:46:37 |
Escribir en la barra de título | marcoszorrilla | Trucos | 0 | 29-06-2006 22:50:13 |
URL en la barra de titulo??? | Jonnathan | Varios | 7 | 30-01-2006 20:43:24 |
Capturar El Evento Onmousemove | ANTONIOGALISTEO | OOP | 4 | 18-09-2003 09:16:01 |
![]() |
|