Bonjour à tous,
En ce moment les codes sont rares, celui la il datait un peu et je viens juste de le finir, alors je vous en fait profiter.
Il s'agit d'une PictureBox, mais en mieux ^^, c'est à dire qu'elle gère des evenements supplémentaires :
- MouseWheel
- MouseIn
- MouseLeave
Et elle se comporte (presque, au maximum) comme une PictureBox classique, pour que l'integration se fasse le plus facilement possible.
Il s'agit d'un UserControl, et pour obtenir les evenements supplémentaires, j'utilise le SubClassing. Seulement ici un problème s'est présenté : on ne peut (théoriquement) pas placer la fonction de CallBack du sous classement dans un UserControl, ce qui est impératif si on veut pouvoir soulever des evenements à partir de cette fonction.
La solution m'a été apportée par EBArtSoft, grace à un petit traficage de la mémoire et avec des injections assembleur (qui me dépassent de beaucoup, bien que j'ai compris le principe).
Donc un énorme merci à lui ;-)
(c'est cette partie du code qui justifie le niveau expert au passage, car le reste n'est pas si compliqué, c'est du subclassing standard)
Source / Exemple :
Ajouter MyPictureBox sur votre Form
Utilisez la comme n'importe quelle autre PictureBox, et profitez des évenements supplémentaires.
C'est tout !
Conclusion :
/!\ ATTENTION /!\
Bien entendu comme il s'agit de SubClassing, ne pas cliquer sur le bouton STOP de l'IDE, sinon votre Visual Basic restera bien gelé :-(
Voilà, si vous voulez que j'ajoute des propriétés, méthodes ou évenements, n'hésitez pas à demander.
Si vous trouvez des bugs aussi ;)
A noter egalement que je compte étendre cela à tous les controles VB existants, mais bon ça demandera du temps donc c'est un projet à long terme.
En esperant que ça vous serve.
MadMatt
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.