Pergunta

Preciso criar um controle de botão rápido e sujo no Visual Basic 2005 Express, cujo valor é aumentado/diminuído "agarrando-o" com o mouse e movendo o cursor para cima/para baixo.Como o botão em si não se move, preciso acompanhar o movimento do mouse fora do retângulo do controle.

Eu uso um Label com um ImageList para implementar isso (tenho uma lista de 127 bitmaps representando o botão em várias posições).

A quais eventos devo reagir?

Foi útil?

Solução

Você precisa do controle para lidar com três eventos:Mouse para baixo, mouse para mover e mouse para cima.No evento Mouse Down, você precisará capturar o mouse.Isso significa que as mensagens do mouse são enviadas para o controle que possui a captura.No evento de movimento do mouse, se a entrada for capturada, atualize a imagem exibida dependendo da quantidade de movimento do mouse.No evento mouse up, libere a captura se a entrada for capturada.

O booleano jjnguy sugere ser desnecessário, pois a propriedade Capture de um Control é legível, portanto é possível determinar se a captura foi definida.

Outras dicas

Seu problema será determinar qual bitmap você deve exibir com base nas coordenadas que o mouse relata no evento mouse_move.Você precisará fazer alguma mágica para transformar as coordenadas e chegar a um valor que possa usar para escolher a imagem certa.

Não parece muito complicado, apenas um pouco de tentativa e erro na matemática.Skizz já mostrou como capturar os eventos.

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