Page 1 sur 1
[R] Fenêtre transparante
Posté : jeu. 15 juil. 2010 20:22
par matheod
Bonjour,
je recherche à créer une fenêtre transparante.
En gros je souhaite pouvoir positionner des label, button, input etc. sans le fond de la fenetre (et sans fermer, réduire etc. d'ailleur).
J'ai regardé du coté de $WS_EX_TRANSPARENT mais ca masque juste fermer reduire etc.
Merci d'avance
bonne journée
Re: [..] Fenêtre transparante
Posté : jeu. 15 juil. 2010 20:57
par matheod
ah j'ai trouvé ca :
http://autoit.fr/forum/viewtopic.php?f=4&t=4444
je test
edit : ne marche pas

Re: [..] Fenêtre transparante
Posté : ven. 16 juil. 2010 00:03
par Yogui
Si j'ai bien compris c'est WinSetTrans qu'il vous faut utiliser.
WinSetTrans($Form1, "",
100)
Faire varier la valeur en rouge pour tester
petit exemple :
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447, 192, 124)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
WinSetTrans($Form1, "", 100)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Re: [..] Fenêtre transparante
Posté : ven. 16 juil. 2010 11:49
par matheod
salut,
merci de ta réponse.
Hélas, ta fonction rend également transparent le contenu.
Si j'ai un input, et bien il sera transparent.
Ce que je veux, c'est juste que le fond de la fenetre soit transparent.
Merci
Re: [..] Fenêtre transparante
Posté : ven. 16 juil. 2010 22:46
par SagePourpre
Ta GUI doit avoir comme style $WS_POPUP afin d'enlever la barre de titre
et $WS_EX_LAYERED comme style étendu afin de permettre la transparence.
Ensuite, tu dois utilise GuiSetBkColor et _WinAPI_SetLayeredWindowAttributes
afin de rendre ta fenêtre transparence, comme dans l'exemple suivant.
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <WinAPIEx.au3>
$gui = GUICreate('',500,500,-1,-1,$WS_POPUP, $WS_EX_LAYERED)
GUICtrlCreateButton('Bouton',100,100,100,100)
Local $color = 0x121314
GUISetBkColor($color, $gui)
_WinAPI_SetLayeredWindowAttributes($gui, $color)
GUISetState()
GUICtrlCreateLabel('Ceci est un texte sur fond transparent',50,50,300,30)
GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)
Sleep(5000)
Re: [..] Fenêtre transparante
Posté : ven. 16 juil. 2010 23:09
par matheod
merci beaucoup ça marche.