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:
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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?
Partager