[VB.NET] Comment associer une Ombre à une Form?
Bonjour,
Tout est dit dans le titre, je cherche à créer une ombre sur une form, et une ombre paramétrable. Voici un logiciel incroyable, qui permet de rajouter une ombre paramétrable à toutes les fênetres de windows! Je vous invite à l'essayer!
http://jazzmatazz.free.fr/YzShadow.rar
Alors j'essaye de refaire la même chose que ce logiciel. Pour UNE form, la mienne... Voilà ce que je suis arrivé à faire, apres de LONGUES recherches (il n'y a pas grand chose sur le sujet :( ), en utilisant "SetClassLong" et la constante "CS_DROPSHADOW" qui ne marche que sous windowsXP (même pas NT!) et qui permet d'ajouter une ombre à une fenêtre:
Code:
1 2 3 4 5 6 7 8 9
| Private Declare Function SetClassLong Lib "user32.dll" Alias "SetClassLongA" (ByVal hWnd As IntPtr,ByVal nIndex As Integer,ByVal dwNewLong As Long) As Long
Private Declare Function GetClassLong Lib "user32.dll" Alias "GetClassLongA" (ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Long
Private Const GCL_STYLE As Long = -26
Private Const CS_DROPSHADOW As Long = &H20000
Public Sub Ombre(Handle As IntPtr)
Call SetClassLong(Handle,GCL_STYLE,GetClassLong(Handle, GCL_STYLE) Or CS_DROPSHADOW)
End Sub |
Voilà, en appellant la fonction "Ombre" au démarrage de ma fenêtre, ça me créer une tout petite ombre autour de ma fenêtre:
http://jazzmatazz.free.fr/ombre.bmp
Mais voilà, je ne sais pas comment modifier son épaisseur, sa profondeur, son dégradé etc etc! Aucune documentation ne m'a été accessible! Je n'ai rien, mais rien trouvé... Pourtant le logiciel précédent permet toutes ces paramétrisations!
Alors mes questions sont:
- Selon vous, quelles technologie est utilisé dans le logiciel YzShadow pour créer des ombres autour des fênetres?
- Si vous pensez qu'il sagit d'un dessin par des fonctions de GDIplus, est il possible de dessiner une bitmap à l'écran, mais pas dans une FORM, à l'éxtérieur d'une form?
- Est il possible, avec la méthode que j'ai utilisé, de modifier les paramètres de mon ombre?