Colocar icono junto al reloj (Visual Basic).

Para poder colocar un icono de nuestra aplicación al lado del reloj, tenemos que utilizar un control. Desde aquí podrás bajarte el control OCX (Systray.ocx) y un ejemplo para aprender a usarlo asi como los fuentes del propio control. Estos son los pasos a seguir para utilizar el control en nuestra aplicación:

Registrar el Control

Para ello, copiamos el control Systray.ocx en el directorio System del Windows. Normalmente en C:\Windows\System. Una vez copiado, abrimos una ventana del Ms-Dos (Menu Inicio,Programas,Ms-Dos) y nos colocamos en el directorio System del Windows: cd \windows\system Ahora registramos el control:

C:\Windows\System>regsvr32 systray.ocx

Nos aparecerá una pantalla del Windows que dirá: DllREgisterServer in systray.ocx succeded. Ya podemos cerrar la ventana del Ms-Dos pulsando exit. Apartir de ahora ya podemos utilizar este control en nuestra aplicación sin ningún problema. Insertarlo en nuestra aplicación Abrimos la aplicación de Visual Basic donde queremos utilizar el control.

Propiedades del control Systray.ocx

Las propiedades a destacar de este control son:

  • InTray = (True/False) Propiedad de Lectura/Escritura que determina si aparece el icono en la barra de herramientas al lado del reloj (por defecto es False).
  • TrayIcon = Devuelve o establece el icono que por defecto aparecerá en la barra de herramientas del Windows. Permite seleccionar cualquier imagen, pero aconsejo que se utilicen iconos o cursores de 16×16 pixels.
  • TrayTip = Es el equivalente a la propiedad ToolTipText de muchos controles. Muestra un texto emergente cuando se pasa el ratón por encima del icono que generamos en la barra de herramientas del Windows. Los eventos de este control, son los mismos que puede tener la mayoría de controles, por lo que no vamos a darle mayor importancia en su definición.

Utilizar el control Systray.ocx

1.- Cambiar el icono del control estando nuestro programa en funcionamiento. Para cambiar el icono del control Systray estando en funcionamientos, lo que tenemos que hacer, es colocar uno o varios controles image con los iconos que queremos que aparezcan en la barra del Windows. De esta manera, para cambiar el icono colocaremos:

Set cSysTray1.TrayIcon = Image1.Picture

También se puede cambiar el icono, sin tener que colocar un control imagen en nuestra aplicación, la forma seria:

Set cSysTray1.TrayIcon = LoadPicture(“Directorio\icono.ico”)

Las dos maneras son correctas, aunque yo prefiero colocar el icono en la aplicación, ya que el tamaño que ocupa es mínimo, y no hay ningún problema de que no encuentre el icono en el directorio porque se haya movido, eliminado, etc…
2.- Hacer aparecer un menú del icono en la barra de herramientas del Windows. Para poder aparecer un menú del icono de la barra de herramientas, hay que crear dicho menú en nuestra aplicación. (El menú puede estar invisible en nuestra aplicación) Aquí utilizaremos el evento MouseDown del control cSystray1. Quedaría algo así:

Private Sub cSysTray1_MouseDown(Button As Integer, Id As Long)
If Button = 2 Then
PopupMenu MenuIcono
End Sub

Cuando Button=2, indica que se ha pulsado el botón derecho del Mouse, y abrirá el menú que para este ejemplo hemos dado el nombre de MenuIcono. Los menús emergentes, siempre se abren en la posición que esta el ratón, por lo que en esta ocasión se abrirá encima del icono que hay en la barra del Windows. Estas son las funciones principales de este icono que se encuentra en la barra del Windows. También podemos utilizar el evento MouseDblClick, para determinas cuando se pulsan dos veces encima del icono.

Nota: Es aconsejable cerrar el icono al finalizar la aplicación, ya que puede quedar visible en la barra de herramientas del Windows. Para ello, en el evento Form_unload, antes de cerrar tu aplicación coloca

cSystray1.InTray = False