Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
5 févr. 2009 à 17:36
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
6 févr. 2009 à 10:22
Bonjour,
J'utilise depuis quelque temps déjà l'API SetParent pour intégrer des forms dans des contrôles (en générale des picture box). Mais cette fois je voudrais en plus rendre le font de ma form transparente donc je pensais faire un 'truc' du genre :
Dim Attrib As Long
Dim CouleurTransparente As Long
CouleurTransparente = Me.BackColor 'Le font est en Orange fluo
SetParent Me.hwnd, Parent.hwnd
Attrib = GetWindowLong(Me.hwnd, -20)
SetWindowLong Me.hwnd, -20, Attrib Or &H80000
SetLayeredWindowAttributes(Me.hwnd, CouleurTransparente, 0, 1)
Problème dans ce cas la fonction GetWindowsLong me retourne 0
Donc du coup je me suis dit que j'allais faire le SetParent avant la transparence
Dim Attrib As Long
Dim CouleurTransparente As Long
CouleurTransparente = Me.BackColor 'Le font est en Orange fluo
SetParent Me.hwnd, Parent.hwnd
Attrib = GetWindowLong(Me.hwnd, -20) '(GWL_STYLE soit -16 me retourne une valeur mais la transparence n'est pas appliqué par le SetLayeredWindowAttributes dans ce cas )
SetWindowLong Me.hwnd, -20, Attrib Or &H80000
Dans ce cas la form enfant ne bouge plus avec le parent et des problèmes de position de la souris se pose si le coins en haut à gauche de l'objet parent n'est pas en 0,0 (ce qui n'est pour ainci dire jamais le cas)
Auriez vous une idée pour faire sa ?
PS:
Problème de position facilement identifiable grace à ce metit bout de code :
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "X:" & X & "|" & "Y:" & Y
End Sub
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 5 févr. 2009 à 20:36
Salut
Attention à ne pas utiliser des noms de variables/objets (comme Parent) qui pourraient ressembler à des instrcutions !
Pour les paramètres des APIs, utilise plutôt les constantes nommées qui vont bien. Elles sont plus simple à comprendre à la relecture ou ... dans un forum
Deux outils indispensables :
- "API-Guide" pour les définitions et exemples
- "APIViewer" pour retrouver les structures et constantes (et leurs valeurs)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 6 févr. 2009 à 08:55
jack :
Oui j'utilise en générale des constantes j'ai posté un peut vite hier (copier, coller, test, re-test, ..., re-...-re-test, post ici, rentré maison ).
Pour les variable en générale j'utilise plutôt des nom comme FormChild (ou PictureParent). Jamais hue de problèmes de compréhension jusqu'à maintenant (bien que Parent tout seul peut prêter à confusion je suis d'accord)
Renfield :
Merci de l'info je n'avais même pas relevé ce détail (qui n'en est pas vraiment un en plus )
MERCI j'ai l'imprécision que c'est grasse à toi que je résout tout mes "petit soucis"
Renfield président, Renfield président, ...
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 6 févr. 2009 à 10:17
NB : Pour ce qui est des noms de variables ressemblant à des instructions : Ce n'est pas que cela perturbe la lecture, mais le compilateur n'aimera pas, il risque de perdre les pédales