Buenas Haciendo mi reproductor de música me ha surgido la duda de cómo hacer que se muestre y se oculte en la barra de tareas, he estado leyendo sobre el TraySetState, TraySetToolTip pero no acabo de encontrar el mecanismo adecuado, si pudieras hacerme un prototipo sencillo lo agradecería mucho.
Pero que es lo que quieres??? que por ejemplo cuando le des al boton de minimizar desaparezca la aplicación y aparezca el icono en la barra de herramientas????
Explicate mejor.
Para mostrar el icono se utiliza TraySetState(1) y para ocultarlo TraySetState(2). Simplemente eso.
Si lo que quieres hacer es algo como lo que te dije al principio, tienes que hacer que cuando le des al botón minimizar de la ventana principal (eso se detecta cuando la funcion GuiGetMsg() lanza el mensaje $GUI_EVENT_MINIMIZE), cambiar el estado de la ventana a oculta con GUISetState(@SW_HIDE), e inmediatamente después hacer visible el icono en la barra de herramientas con TraySetState(1). Al contrario sería con GUISetState(@SW_SHOW) e inmediatamente TraySetState(2).
Intenta algo y ya nos dirás.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
#Include <Constants.au3>
#include <GUIConstantsEx.au3>
#NoTrayIcon ;no pone el icono en el Tray.
Opt("TrayMenuMode",1) ;quita el menu del icono
$Form1 = GUICreate("Form1", 291, 172, 193, 115)
$Input1 = GUICtrlCreateInput("Input1", 48, 56, 177, 21)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
$msgTray=TrayGetMsg() ;recoge los mensajes creados por el Tray.
If $msgTray=$TRAY_EVENT_PRIMARYDOWN Then ;si cliqueas encima del icono, la ventana se restaura y desaparece el icono.
GUISetState(@SW_SHOW)
GUISetState(@SW_RESTORE)
TraySetState(2)
EndIf
Switch $nMsg
Case $GUI_EVENT_MINIMIZE
GUISetState(@SW_HIDE)
TraySetState(1)
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Mmmmm...no es una función, es una constante. La función TrayGetMsg() devuelve los eventos como valores numéricos, y AutoIt los ha declarado en varias constantes.
Mira en la ayuda la función TrayGetMsg(). Hay están todas las constantes devueltas por ésta según la acción que hagas.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).