VB6 PictureBox Mouseover
-
07-07-2019 - |
Pergunta
Eu estou usando um VB6 PictureBox no meu User Control. I definir a imagem da PictureBox, eu definir o BorderStyle a 0, e eu definir o BackColor ao Usuário BackColor do controle. A idéia é que eu quero um ícone de "flutuante". No entanto, eu quero esse ícone para aparecer clicável quando os paira mouse sobre ele.
Duas perguntas:
-
Qual eventos que eu uso? MouseMove parece ser o mais próximo de um evento "MouseOver". Existem alternativas mais limpas?
-
Como devo mudar o estilo? Eu tentei algumas coisas, mas nenhum deles bastante olhar direito.
Solução
-
MouseMove é o evento correto em VB6. Você vai ter que fazer algum trabalho para detectar manualmente quando as folhas do rato a área do cliente de forma limpa. (Minhas experiências neste mundo, lo desses há muitos anos, sempre encontrado implementar esse comportamento para ser complicado.)
-
Para mudar o estilo, eu recomendo usar GDI para: (a) alterar o pixel da imagem um para cima e para a esquerda; (B) extrair uma única linha de pixel na ButtonHighlightColor ao longo das bordas superior e esquerda; e (c) estabelecer uma única linha de pixel na ButtonShadowColor ao longo do fundo e bordas direitas. Esta é mais complicado do que parece, particularmente em VB6, então, em última análise eu recomendaria ...
Que você olhar para controles da barra de ferramentas do VBAccelerator . Eles estão livres, e que provavelmente vai levá-lo mais de onde você quer estar. (E sim, eles são "clássico" VB -. Isto é, VB6)