Un screenshot de ce qu'il y a derrière un control...

Signaler
Messages postés
113
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
3 février 2007
-
Messages postés
113
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
3 février 2007
-
Salut à tous,
Voilà j'ai besoin de votre aide... je programme sous
VB6
Je souhaite afficher sur le fond d'un usercontrol ce qu'il y a derrière lui...

En fait je fais un alphablend avec des ombres.
(avec Public Declare Function AlphaBlend Lib "msimg32.dll") et d'autres fonctions.
Je ne peux donc utiliser la propriété maskpicture car le résultat est moche.
il faudrait pouvoir récupérer tout ce qui est derrière mon usercontrol...
En fait il me faudrait un screenshot qui ignore la présence de mon usercontrol..

merci d'avance à tous, et bonne prog

* .-'''-.,.-"'-. +
( !  Bon ! . *
+ ".  Surf!  " ( crossblade )
* . "'-.,.-'" + .

4 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Il te faut récupèrer le picture de la form (ou du container) contenant ton usercontrol :

Il me semble que c'est :
UserControl.Container.Picture
Messages postés
113
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
3 février 2007

ça marche s'il n'y a qu'une image en dessous mais ce code ne prend pas en compte la présence d'autres control en dessous. Si je met un label avec un fond noir derrière... ben il ne le prend pas en compte.

j'avais essayé ça dans resize :
Form1.Widget1.Visible = False
Form1.Refresh
Call BitBlt(UserControl.hdc, 0, 0, Wii, Hii, Form1.hdc, 0, 0, vbSrcCopy)
Form1.Widget1.Visible = True

mais mon usercontrol clignote beaucoup (ce qui est un peu normal)
donc ben voilà je sais pas si t'as autre chose mais merci quand même...

* .-'''-.,.-"'-. +
( !  Bon ! . *
+ ".  Surf!  " ( crossblade )
* . "'-.,.-'" + .
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Une astuce qui en vaut une autre : masquer ton contrôle, faire le BitBlt du hDC du container, puis réafficher ton contrôle.

J'avais moi aussi l'idée de faire une ombre sur les contrôles d'une feuille (j'ai déposée une source à ce propos), mais j'ai finalement laissé tombé à cause de ce genre de chose : pas le temps de m'y pencher, mais par API, le DC du container contient l'image de ton contrôle si celui-ci est visible, ce qui limite déjà beaucoup les opérations possibles !
Messages postés
113
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
3 février 2007

c'est que j'ai pour l'instant mais ça fait clignoter le control et en plus je dois le rafraichir régulièrement.... merci de ton aide
j'vais tenter une autre voie


j'vais m'aider de ça
http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=55352&lngWId=1


merci à toi
* .-'''-.,.-"'-. +
( !  Bon ! . *
+ ".  Surf!  " ( crossblade )
* . "'-.,.-'" + .