Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-05-2006
liadsoft liadsoft is offline
Miembro
 
Registrado: may 2006
Posts: 12
Poder: 0
liadsoft Va por buen camino
Lightbulb Ocultar Content Menus

Hola. Tengo un problema. Tengo una aplicación en la que pongo un icono en el área de notificación, al lado del reloj. Al dar click derecho con el mouse, captura la posición del cursor y muestro en esa posición un Menu con la función API TrackPopupMenuEx. Hasta ahí todo bien. Pero cuando el usuario da un click fuera del menú, es decir, un ejemplo, activa otra aplicación, el menú no se ocúlta automáticamente.

Lo que hice fue que al enseñar el menu creo un timer, y captura la ForeGround Window en el momento de enseñarla y en cada intervalo compruebo si a cambiado, de ser así, destruyo el menú, pero así no sirve, aún así no lo oculta. Lo que tuve que hacer fue crear una ventana oculta para el menú y lo mismo, al pasar el intervalo si cambió el Forteground destruyo la ventana y así si funciona.

Lo que quiero es una forma mejor, eso de crear una ventana extra cada ves que muestro el menú es un desástre, se ve mal. Si alguien tiene otra soluci´pion, por favor, que me ayude.
Responder Con Cita
  #2  
Antiguo 11-05-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
¿Que handle le pasas en el parametro hwnd de la funcion TrackPopupMenuEx? Solo tendrias que usar la funcion SetForegroundWindow con ese handle antes de usar TrackPopupMenuEx y el menu se ocultara correctamente.

Por cierto, ¿tu aplicacion no usa formularios? aunque esten ocultos, porque podria ser mas sencillo usar un TPopupMenu. Seria el mismo proceso, usar SetforegroundWindow con el Handle del formulario y el metodo Poup para mostrar el menu. Solo es una sugerencia.
Responder Con Cita
  #3  
Antiguo 12-05-2006
liadsoft liadsoft is offline
Miembro
 
Registrado: may 2006
Posts: 12
Poder: 0
liadsoft Va por buen camino
Cita:
Empezado por seoane
¿Que handle le pasas en el parametro hwnd de la funcion TrackPopupMenuEx? Solo tendrias que usar la funcion SetForegroundWindow con ese handle antes de usar TrackPopupMenuEx y el menu se ocultara correctamente.

Por cierto, ¿tu aplicacion no usa formularios? aunque esten ocultos, porque podria ser mas sencillo usar un TPopupMenu. Seria el mismo proceso, usar SetforegroundWindow con el Handle del formulario y el metodo Poup para mostrar el menu. Solo es una sugerencia.
Oye, gracias por lo de los formularios, pero nececito una aplicación ultra pequeña, sólo API, sin utilizar los componentes del Delphi y toda esa interface. Tengo mis razones, por supuesto que muchas gracias por tu sugerencia.

Bueno, no se me había ocurrido activar la ventana, funcionó okay. Muchísimas gracias por todo.

Última edición por liadsoft fecha: 12-05-2006 a las 06:43:52.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
menus flotantes Toni Varios 6 19-04-2006 22:42:10
menus desplegables jonmendi OOP 4 20-04-2005 18:51:22
quitar menus empty Impresión 1 07-06-2004 09:14:08
GroupIndex con Menus en MDI Lepe Varios 2 02-06-2004 10:17:36
Manejo de menus robero espinoza Varios 1 26-05-2004 19:42:13


La franja horaria es GMT +2. Ahora son las 01:16:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi