Mar 012021
 

Hola en esta ocasión un poco más de lo mismo ya en el blog hay 3 artículos más referidos a menús, pero bien, esta clase se trata de armar un menú popup con apis de una forma más sencilla y con varias propiedades que vb6 no contiene, algunas de ellas son: ItemBitmap, ItemRadioCheck, ItemDefault, ItemHilite, ítems en columna (Break).

Como plus hay un módulo que sirve para leer imágenes, con un tamaño específico, esto esta pensado más que nada para soporte del DPI.

Dentro del módulo está la función llamada LoadPictureEx con la que podemos pasarle como primer parámetro:

  • Un Array de bits de la imagen
  • El path de la imagen
  • Una Url web de la imagen
  • Una url con la imagen codificada en ella «data:image/png;base64,iVBORw…»
  • Un objeto Stream (devuelto por algunas librerías de windows)
  • Un hBitmap
  • un hIcon

El segundo y tercer parámetro es el alto y ancho de la imagen. El tercero boolean si queremos que se ajuste a ese ancho o que sea proporcional. El cuarto parámetro el formato de salida vbPicTypeBitmap o vbPicTypeIcon. El quinto parámetro es un color, para esas imágenes tipo vectoriales de un solo color, con esta función podemos pintarlas a ese color (aclaro no tiene soporte para SVG). El sexto parámetro BackColor, sería por si es un png y lo queremos mostrar en un control imagen, elegimos su color de fondo.

la función retorna un iPicture o StdPicture con un Bitmap o Icono con una imagen de 32Bits de profundidad, la cual sirve para pasar a los common controls. y el menú por supuesto. también se pude utilizar con el icono del formulario con SendMenssage, el SysTray etc etc etc.

ClsApiMenu.png
Abr 202011
 

Esta es una aplicación para crear tiras de imágenes (casi lo contrario de esto), las cuales son utilizadas frecuentemente en los ImageList (Creados con Apis, ya que los OCX de los Common Controls no tienen soporte para dichas imágenes.) en fin suele ser muy útil a la hora de empaquetar los iconos en nuestro proyectos ya que con un solo bitmap podremos poner todos los iconos que utilizaremos lo cual es mas como y mas liviano que incluir icono por icono en un archivo de recursos.
un ejemplo claro pueden verlo en las imágenes a continuación

Tira_Img_02
Tira_Img0_01

Si bien tiene soporte para todas las resoluciones, no funciona correctamente con las imágenes que utilicen paletas de colores porque no la respeta correctamente, esto es algo que me quedo pendiente ya que fue una mala decisión de como realizarlo desde un principio y no tenia ganas de dar marcha atrás. el proyecto tuvo muchos cambios ya que parece algo fácil pero me tope con muchas trabas y al final opte por incluir la clase c32bppDIB de LaVolpe.
Realmente estoy muy inconforme con el resultado final pero ya me tenia algo cansado y opte por publicarlo como esta.

Image Strip Creator
Image Strip Creator
Image Strip Creator

Ago 292010
 

Esta es una pequeña aplicación que he realizado, la cual sirve para extraer imágenes que se encuentran como parte de los recursos de una DLL, EXE y otros. Una vez hecho esto, el programa se encarga de convertirlas en iconos con formato .ICO o .PNG.
A continuación se mostrarán dos imágenes, la primera es una imágen de 24 bit con una máscara color magenta, y la segunda una imágen de 32 bit con canal alpha (no se utiliza color de máscara)

Tira_Img_02
Tira_Img0_01

Estas son capturas de la aplicación. En la primera etapa se indica un directorio en dónde buscar y con qué extensión, luego al hacer click en uno de los items nos desplegará todas las imágenes que se encuentran disponibles en ese archivo, seleccionamos una de ellas presionando el botón exportar y nos abrirá una ventana con una vista previa de los íconos y algunas opciones extra.

Bitmap a Iconos
Bitmap a Iconos

Realmente es impresionante las cantidades de imágenes que podremos obtener, hay íconos para todos los gustos. En estos días subiré una carpeta con algunas recopilaciones.

Jul 182010
 

Este es un módulo clase que sirve para insertar imágenes en el menú, a diferencia del control de usuario HookMenu, este sólo requiere un simple módulo, quizás no cuente con una interfaz sencilla para insertar las imágenes ya que con este módulo tendremos que hacerlo mediante código.
Lo que intenté preservar es que el ícono no modifique el estilo visual de Windows, es decir, el menú no tendrá el aspecto de Office o Ribbon.
También cuenta con la posibilidad de agregarle imágenes a la barra de menú y a los menúes creados mediante Apis (CreatePopupMenu).
La clase soporta imágenes .png, .ico y todos los formatos estándar de imágenes. Este módulo sólo funcionará en Windows XP y posteriores, ya que las versiones anteriores no cuentan con GDI Plus.
En Windows XP el módulo necesita subclasificar la ventana que contiene o llama al menú, pero en Windows Vista y Windows 7 esto no es necesario ya que corrigieron el error que tenían los menúes con bitmaps.

Menú con imágenes XP

Barra de menú con imágenes XP

Nótese que en Windows Vista y Windows 7 se mantienen los estilos visuales de Windows.

Menú con imágenes Seven
Barra de menú con imágenes Seven

Sep 202009
 

Este es un control de usuario que sirve para mostrar íconos de 32 bits, quizás este control sea una forma de poder facilitar a los que se inician, ya que para los que tienen experiencia con el uso de las Apis con unas pocas líneas de código se podría evitar usar este control.
El ícono se almacena en forma binaria (comprimida) dentro del control, por lo que no necesitamos cargarlo desde un archivo o recurso. También cuenta con una página de propiedades donde el ícono se puede extraer desde un archivo .ico o desde un recurso de una librería o ejecutable.
Los íconos extraídos los enumera en una lista donde podemos elegir cuál de ellos utilizar, además cuenta con un pequeño filtro para estas imágenes donde podremos darle transparencia, brillo o convertirlo en escala de grises (esto sólo disponible en tiempo de diseño).
En tiempo de ejecución se le puede pasar el handle de un ícono o leer desde archivos o recursos.
Vale aclarar que gran parte del proyecto es un rejunte de códigos donde detallo claramente los créditos a los autores.

Alpha Icon 32 bits

Jul 142009
 

Este es un Control de Usuario de un ListBox con algunas cualidades extras, tales como poder insertar íconos, personalizar la selección o personalizar el borde, también permite optar entre un método de deslizamiento automático a través de dos botones en su parte superior e inferior o el clásico ScrollBar. El ícono puede alinearse tanto a la izquierda del texto como en la parte superior, diría que es especial para crear un menú lateral, acepta íconos de 32 bits, aclaro sólo íconos, no bitmaps. Además tiene casi todas las opciones y eventos que los demás controles poseen,  me gustaría que si alguien encuentra algún error o desea agregarle alguna otra propiedad utilice el sistema de comentarios.

ListBoxEx
ListBoxEx2