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.