SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: JuanK en Viernes 14 de Agosto de 2009, 18:18

Título: detectar el click derecho e izquierdo en taskbar btn
Publicado por: JuanK en Viernes 14 de Agosto de 2009, 18:18
Hola,
como puedo detectar el click derecho e izquierdo en el botón de mi aplicación en la barra de tareas?

Realmente ya logre detectar el click derecho capturando el mensaje WMTaskBarRClick = 0x0313 que por cierto es un mensaje indocumentado :S

Pero con el izquierdo, que es el que más me interesa no he logrado hacer absolutamente nada, alguien sabe como lo puedo hacer?}

Realmente el problema de fondo es que tengo un form con WindowStyle=None y un form con este estilo no se minimiza y normaliza cuando uno da click en el botón de la aplicación de la barra de tareas, es decir no escucha los mensajes de maximizar y minimizar...

entonces logre interceptar el click derecho de la barra para hacerlo minimizar o maximizar con el click derecho... pero ese no es el comportamiento normal ya que debe ser así pero con el izquierdo, pero ese evento no lo he podido capturar.

ayer gaste toda la tarde haciendo seguimiento de mensajes y los que logre detectar realmente se disparan también en otras circunstancias así que no son lo que busco.
Título: Re: detectar el click derecho e izquierdo en taskbar btn
Publicado por: Eternal Idol en Viernes 14 de Agosto de 2009, 19:54
¿No te llega el WM_ACTIVATE con wParam siendo WA_INACTIVE?
Título: Re: detectar el click derecho e izquierdo en taskbar btn
Publicado por: JuanK en Viernes 14 de Agosto de 2009, 21:52
Si,
pero la ventana se comporta de la siguiente manera:

1- si dejo presionado el boton del mouse en el boton de la barra de tareas la aplicacion se esconde
2- si suelto el boton la aplicacion se hace visible de nuevo

estoy haciendo algo asi:

Código: C#
  1.             if (m.Msg == WM_ACTIVATE)
  2.             {
  3.                 if (m.WParam.ToInt32() == WA_INACTIVE)
  4.                 {
  5.                     this.WindowState = FormWindowState.Minimized;
  6.                 }
  7.             }
  8.  
Título: Re: detectar el click derecho e izquierdo en taskbar btn
Publicado por: Eternal Idol en Viernes 14 de Agosto de 2009, 22:08
Tal vez usando la misma logica que en este ejemplo puedas:
http://www.rohitab.com/discuss/lofivers ... 27876.html (http://www.rohitab.com/discuss/lofiversion/index.php/t27876.html" onclick="window.open(this.href);return false;)

La crea con borde pero despues le saca WS_CAPTION y WS_SIZEBOX en tiempo de ejecucion ...
Título: Re: detectar el click derecho e izquierdo en taskbar btn
Publicado por: JuanK en Viernes 14 de Agosto de 2009, 22:40
muy buena idea, bueno la hice así que es más fácil.

1- cree la ventana normal
2- modifique el método (propiedad )de creación de parámetros

Código: C#
  1.         const int WS_CAPTION = 0xC00000;
  2.         const int WS_THICKFRAME = 0x00040000;
  3.         const int WS_SIZEBOX = WS_THICKFRAME;
  4.         protected override CreateParams CreateParams
  5.         {
  6.             get
  7.             {
  8.                 CreateParams p = base.CreateParams;
  9.                 p.Style &= ~(WS_CAPTION | WS_SIZEBOX);
  10.                 return p;
  11.             }
  12.         }
  13.  

mm, en solocódigo ya deberia haber un sistema de puntos para las respuestas correctas.


gracias!!  ;)
Título: Re: detectar el click derecho e izquierdo en taskbar btn
Publicado por: Eternal Idol en Viernes 14 de Agosto de 2009, 22:58
De nadas  B)