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:

  1. Qual eventos que eu uso? MouseMove parece ser o mais próximo de um evento "MouseOver". Existem alternativas mais limpas?

  2. Como devo mudar o estilo? Eu tentei algumas coisas, mas nenhum deles bastante olhar direito.

Foi útil?

Solução

  1. 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.)

  2. 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)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top