Control ATL con multi ventanas

25/11/2004 - 17:56 por Javier Rueda | Informe spam
Hola,

Tengo un pequeño problema en la generacion de un control ATL que debe
contrlar varias ventanas.
La exposicion de la aplicacion es la siguiente:

Una ventana principal tiene incrustadas varias ventanas, cada una de estas
ventanas tiene que tener el control de la posicion del raton ya el contenido
de estas ventanas son imagenes en GDI+ que se puden mover dentro de las
subventanas, a su vez, estas sub ventanas se puden mover libremente por la
ventana principal.

Inicialmente en los MESSAGE_MAP de la clase subventana tengo capturado el
evento MOUSEMOVE, y en la clase principal tambien esta capturado.

Problema:
Hay alguna forma de crear y eliminar eventos del MESSAGE_MAP en tiempo de
ejecucion?
Realmente en la clase subventana solo necesito controlar el raton cuando la
ventana esta seleccionada

En la actualidad funciona pero cuando muevo una subventana y el cursor pasa
por encima de otra subventana la aplicacion se vuelve loca en colocar el
cursor del raton y no me deja desplazarme por esa zona.

Si alguien me puede ayudar lo agradeceria

Un saludo al grupo

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
25/11/2004 - 22:23 | Informe spam
No lo tengo muy claro... pero prueba con SetCapture y ReleaseCapture... en
ocasiones me han salvado de alguna situación similar...

Ya nos contaras...

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Willser F. González C.
26/11/2004 - 21:50 | Informe spam
Me imagino que si la subventana no está seleccionada, entonces ésta no
estará activa, entonces supongo que se podría sobrepasar la funcion
OnSetActive y OnKillActive de la SubVentana, y con con una variable miembro,
activada y desactivada en estas funciones según convenga, se podrían evitar
las "locuras" que ocurren en OnMouseMove().


"Javier Rueda" escribió en el mensaje
news:OwoAh$
Hola,

Tengo un pequeño problema en la generacion de un control ATL que debe
contrlar varias ventanas.
La exposicion de la aplicacion es la siguiente:

Una ventana principal tiene incrustadas varias ventanas, cada una de estas
ventanas tiene que tener el control de la posicion del raton ya el


contenido
de estas ventanas son imagenes en GDI+ que se puden mover dentro de las
subventanas, a su vez, estas sub ventanas se puden mover libremente por la
ventana principal.

Inicialmente en los MESSAGE_MAP de la clase subventana tengo capturado el
evento MOUSEMOVE, y en la clase principal tambien esta capturado.

Problema:
Hay alguna forma de crear y eliminar eventos del MESSAGE_MAP en tiempo de
ejecucion?
Realmente en la clase subventana solo necesito controlar el raton cuando


la
ventana esta seleccionada

En la actualidad funciona pero cuando muevo una subventana y el cursor


pasa
por encima de otra subventana la aplicacion se vuelve loca en colocar el
cursor del raton y no me deja desplazarme por esa zona.

Si alguien me puede ayudar lo agradeceria

Un saludo al grupo


Respuesta Responder a este mensaje
#3 Javier Rueda
29/11/2004 - 23:22 | Informe spam
Gracias por la ayuda.

Al final he leido el articulo basado en WTL y he basado la solucion en esta
libreria. Gracias al interface que soporta de MDI.


"Willser F. González C." escribió en el mensaje
news:eVHBti$
Me imagino que si la subventana no está seleccionada, entonces ésta no
estará activa, entonces supongo que se podría sobrepasar la funcion
OnSetActive y OnKillActive de la SubVentana, y con con una variable


miembro,
activada y desactivada en estas funciones según convenga, se podrían


evitar
las "locuras" que ocurren en OnMouseMove().


"Javier Rueda" escribió en el mensaje
news:OwoAh$
> Hola,
>
> Tengo un pequeño problema en la generacion de un control ATL que debe
> contrlar varias ventanas.
> La exposicion de la aplicacion es la siguiente:
>
> Una ventana principal tiene incrustadas varias ventanas, cada una de


estas
> ventanas tiene que tener el control de la posicion del raton ya el
contenido
> de estas ventanas son imagenes en GDI+ que se puden mover dentro de las
> subventanas, a su vez, estas sub ventanas se puden mover libremente por


la
> ventana principal.
>
> Inicialmente en los MESSAGE_MAP de la clase subventana tengo capturado


el
> evento MOUSEMOVE, y en la clase principal tambien esta capturado.
>
> Problema:
> Hay alguna forma de crear y eliminar eventos del MESSAGE_MAP en tiempo


de
> ejecucion?
> Realmente en la clase subventana solo necesito controlar el raton cuando
la
> ventana esta seleccionada
>
> En la actualidad funciona pero cuando muevo una subventana y el cursor
pasa
> por encima de otra subventana la aplicacion se vuelve loca en colocar el
> cursor del raton y no me deja desplazarme por esa zona.
>
> Si alguien me puede ayudar lo agradeceria
>
> Un saludo al grupo
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida