Pregunta

Estoy usando un PictureBox VB6 en mi Control de Usuario. Configuré la imagen del PictureBox, configuré el BorderStyle en 0 y configuré el BackColor en el BackColor del Control de Usuario. La idea es que quiero un "flotante" icono. Sin embargo, quiero que el icono parezca cliqueable cuando el mouse se mueva sobre él.

Dos preguntas:

  1. ¿Qué eventos uso? MouseMove parece ser el más cercano a un " MouseOver " evento. ¿Hay alguna alternativa más limpia?

  2. ¿Cómo debo cambiar el estilo? He intentado algunas cosas, pero ninguna de ellas se ve bien.

¿Fue útil?

Solución

  1. MouseMove es el evento correcto en VB6. Tendrá que hacer un trabajo para detectar manualmente cuando el mouse abandona el área del cliente limpiamente. (Mis experimentos en este mundo, hace muchos años, siempre encontraron que implementar este comportamiento es complicado).

  2. Para cambiar el estilo, recomendaría usar GDI para: (a) desplazar la imagen un píxel hacia arriba y hacia la izquierda; (b) dibuje una sola línea de píxeles en ButtonHighlightColor a lo largo de los bordes superior e izquierdo; y (c) dibuje una sola línea de píxeles en ButtonShadowColor a lo largo de los bordes inferior y derecho. Esto es más complicado de lo que parece, especialmente en VB6, por lo que, en última instancia, recomendaría ...

Que nos fijamos en controles de la barra de herramientas de vbAccelerator . Son gratis, y probablemente te llevarán a la mayor parte de donde quieres estar. (Y sí, son "clásicos" VB, es decir, VB6.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top