Question

J'utilise un PictureBox VB6 sur mon contrôle utilisateur. J'ai défini l'image de la PictureBox, le style BorderStyle sur 0 et le paramètre BackColor sur BackColor du contrôle utilisateur. L'idée est que je veux un "flottant" icône. Cependant, je veux que cette icône apparaisse cliquable lorsque la souris le survole.

Deux questions:

  1. Quels événements dois-je utiliser? MouseMove semble être le plus proche d'un & Mouse; MouseOver " un événement. Existe-t-il des alternatives plus propres?

  2. Comment devrais-je changer le style? J'ai essayé plusieurs solutions, mais aucune d'entre elles ne semble correcte.

Était-ce utile?

La solution

  1. MouseMove est l’événement correct dans VB6. Vous devrez faire quelques efforts pour détecter manuellement lorsque la souris quitte la zone client proprement. (Mes expériences dans ce monde, il y a de nombreuses années, ont toujours révélé que mettre en œuvre ce comportement était délicat.)

  2. Pour changer le style, je vous recommande d'utiliser GDI pour: (a) décaler l'image d'un pixel vers le haut et vers la gauche; (b) tracez une seule ligne de pixel dans ButtonHighlightColor le long des bords supérieur et gauche; et (c) tracez une seule ligne de pixel dans ButtonShadowColor le long des bords inférieur et droit. C’est plus compliqué que ça en a l'air, en particulier dans VB6, donc je recommanderais finalement ...

Regardez les commandes de la barre d'outils de vbAccelerator . Ils sont gratuits et ils vous mèneront probablement là où vous le souhaitez. (Et oui, ils sont "classiques", c'est-à-dire VB6.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top