Jul 292011
 

Módulo clase para agregar un botón en las partes no cliente del formulario (bordes), actualmente con la llegada de Windows Seven son varias las aplicaciones que utilizan este sistema. Bien, esta clase sólo intenta crear un efecto parecido, y digo intenta ya que es otro método el que utilizan, lo que hace es crear una ventana en la que aplica el API UpdateLayeredWindow, la cual transforma un mapa de bits en una máscara para la ventana, la cual tiene soporte Alpha. Las aplicaciones por ejemplo Firefox, donde hoy en día se puede ver un botón naranja sobre el área no cliente utilizan otro método (DwmExtendFrameIntoClientArea, DwmEnableBlurBehindWindow) que es el de repintar el marco de la ventana empleando la nueva Guid de Windows Seven, esta clase también se puede utilizar bajo Windows XP, para ser más exacto esta clase hace lo mismo que se vé en el Botón Inicio de Windows 7.

Detalles de sus propiedades y funciones:

  • CreateButton: Inicializa el botón, el primer parámetro debe ser el hwnd de la ventana padre, el segundo parámetro es opcional para el ToolTipText.
  • LoadImageFromFile: Lee una imagen desde archivo.
  • LoadImageFromRes: Lee una imagen desde el archivo de recurso de la aplicación.
  • LoadImageFromStream: Lee una imagen desde un array de bits.
  • Left: Devuelve o establece la ubicación izquierda del botón con respecto a su ventana padre.
  • Top: Devuelve o establece la ubicación superior del botón con respecto a su ventana padre.
  • Right: Devuelve o establece la ubicación derecha del botón con respecto a su ventana padre.
  • Bottom: Devuelve o establece la ubicación inferior del botón con respecto a su ventana padre.
  • MoveMode: Indica a la clase en qué sentido debe mover el botón cuando la ventana padre se mueva o cambie de tamaño.
  • Enabled: Devuelve o establece si el botón está o no habilitado
  • Alpha: Transparencia del botón rango de 0 a 255.
  • ToolTipText: Devuelve o establece el texto mostrado cuando el mouse se sitúa sobre el control.
  • ImageWidth: Devuelve  el ancho de la imagen cargada.
  • ImageHeight: Devuelve el alto de la imagen cargada.
  • hwnd: Devuelve el Handle del botón.
  • ButtonWidth: Devuelve el ancho del botón.
  • ButtonHeight: Devuelve el alto del botón.

Vale aclarar que el botón no tiene Caption ya que es una tira de imágenes (la imagen debe ser siempre una tira vertical) -ver el formato en el zip del ejemplo-, el orden utilizado de los estados es Normal, Hot, Presionado y Deshabilitado. El formato de la imagen es conveniente que sea .PNG para la transparencia.

Nota: La clase subclasifica las ventanas y no utilicé el método modo seguro (SafeMode) sólo para que no sea muy grande el módulo, así que ojo No presionar el Stop del IDE de VB6. Ante cualquier error seguramente se les cerrará todo el proyecto y en el peor de los casos se les reiniciara Windows. Es recomendable comentar la línea de inicialización del botón (CreateButton) hasta que se compile el proyecto.

Boton No Cliente

En el ejemplo hice una validación que si la versión de Windows es Vista o Seven que quite el icono y el Caption de la ventana utilizando el api SetWindowThemeAttribute, ahora si es Windows XP van a ver que no queda muy bien ya que debajo del botón se vé el icono y el caption, quizás estés pensando en poner un icono transparente y remover el Caption pero esto hará que no se vea en la barra de tareas.

Boton No Cliente

Dic 032009
 

Este es un Gadget para Taringa.net programado en Visual Basic 6 muestra todos los últimos post realizados. También ordena por categorías, si dan un clic en la lista mostrara una ventanita con la información del post, y con doble clic abre el navegador en dicho post.
También sirve para Poringa.net, tiene algunas opciones como elegir el tiempo de actualizado, poner un icono en la barra de tareas, controlar la opacidad de la ventana, contraerla a un mínimo o expandirla. Iniciar con Windows y otras más.

CapturaTaringa.png
CapturaPoringa.png
TaringaOpciones.png
MenuPoringa.png

Descargar .zip con el ejecutable.

Para programadores en Visual Basic 6 el código de fuente.

May 272009
 

Este es un Proyecto WidGet que nos permitirá utilizar cuatro escritorios a la vez, es una utilidad para aquellos que les gusta tener muchas ventanas abiertas al mismo tiempo, bien con esta aplicación podrán organizarse mejor ya que se podrá ocultar y mostrar las ventanas que deseen para cada escritorio.
Este proyecto utiliza una DLL no ActiveX la cual está embebida dentro de un archivo de recurso, es la encargada de provocar un hook para detectar cuando se hace Click en los menús de las ventanas externas, gran parte de este proyecto se lo debo a Cobein, autor de muchos módulos clases que utiliza este proyecto.

Nota: Si ejecutan el proyecto desde el IDE de Visual Basic no detengan la aplicación desde el Stop, den Click al icono que aparece junto a la hora de la barra de tareas y seleccionen la opción «Cerrar».

Sample thumbnail

Abr 182009
 

Es un Proyecto WidGet que consta de un anotador o notas recordatorias. Cuenta con varias opciones, tales como: modificar el color de texto, color de fondo, tamaño, ubicación, sonido, fecha y hora de cuando se quiera mostrar.
Este proyecto está algo viejito, as que hay cosas que en la cWidget ya las hace automáticamente, pero bien no tena ganas de reformarlo, as que lo dejo como lo hice en un principio, además tiene como dependencia Microsoft Windows Common Controls.

Sample thumbnail