Page 1 sur 1
[R] Afficher une image transparente au centre de l'écran.
Posté : sam. 20 nov. 2010 17:24
par AlapOwner
Bonjour,
Je débute dans ce language et j'aimerai bien connaitre le moyen d'afficher une image transparente au centre de l'écran. En fait ca serai pour faire un viseur. Il suffirait a la pression d'un bouton, faire apparaitre l'image. Est-ce possible?
Merci d'avance !
Re: [..] Afficher une image transparente au centre de l'écran.
Posté : sam. 20 nov. 2010 19:29
par roselito13
Voici un exemple en utilisant l'UDF <GDIPlus.au3>
Code : Tout sélectionner
$GUI = GUICreate("Test", 250, 250, -1, -1, -1, $WS_EX_LAYERED)
; Load layered image
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Images.png")
GUISetState()
Voila, il faut donc juste crée une GUI "invisible" et y mettre une image "visible"

Re: [..] Afficher une image transparente au centre de l'écran.
Posté : lun. 22 nov. 2010 20:01
par AlapOwner
Merci de votre réponse seulement voila je débute vraiment et je ne comprend pas bien tout cela. Voila mon code selon ce que j'ai compris
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include <GDIPlus.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("CrossHair", 185, 38, 197, 152)
Global $Button1 = GUICtrlCreateButton("Afficher le crosshair", 8, 8, 171, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$GUI = GUICreate("Test", 250, 250, -1, -1, -1, $WS_EX_LAYERED)
_GDIPlus_Startup()
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "C:\Users\User\Desktop\AutoIT\Tuto\curseur.png")
GUISetState()
EndSwitch
WEnd
De plus j'aimerai partager ce logiciel et si on doit donner un chemin local tout le monde devrait avoir le meme ce qui n'est pas bien pratique.
Désolé si je suis vraiment un boulet ^^
Merci de votre aide.
Re: [..] Afficher une image transparente au centre de l'écran.
Posté : mar. 23 nov. 2010 11:17
par roselito13
Voici le code :
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include <GDIPlus.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("CrossHair", 185, 38, 197, 152)
Global $Button1 = GUICtrlCreateButton("Afficher le crosshair", 8, 8, 171, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$MSG = GUIGetMsg($Form1)
Select
Case $MSG = $Button1
$GUI = GUICreate("Test", 250, 250, -1, -1, -1, $WS_EX_LAYERED) ;Crée une GUI "invisible"
_GDIPlus_Startup() ;Initialise la fonction pour afficher des image PNG
$hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\Images.png") ;Affiche l'image PNG sur l'écran
GUISetState()
Endselect
WEnd
Et pour se qui est de l'image, la façon la plus simple et de la mettre a coter de l’exécuteur.
Puis pour par exemple déplacer l'image, il suffit de déplacer le GUI.
Re: [..] Afficher une image transparente au centre de l'écran.
Posté : mar. 23 nov. 2010 20:26
par AlapOwner
Je ne comprend pas, quand j'appuie sur le bouton la deuxieme s'ouvre bien mais invisible, et l'image ne s'affiche pas.
Je ne sais pas si on voit trés bien sur ce screen mais je ne suis pas en mesure d'expliquer plus

Avez vous vous-meme essayé le code? Ca vient surement de moi mais d'où ...
Re: [..] Afficher une image transparente au centre de l'écran.
Posté : mar. 23 nov. 2010 21:59
par Jerome
Coucou,
Il y a de grande chance pour que sa soit lié au faite que vous ayez windows 7.
Jérôme
Re: [..] Afficher une image transparente au centre de l'écran.
Posté : mer. 24 nov. 2010 12:18
par roselito13
@AlapOwner as surement raison je suis sous Windows XP, et cela fonctionne.
Je ne connait pas d'autre solution désole :s, a voir avec un autre membre.
Re: [..] Afficher une image transparente au centre de l'écran.
Posté : mer. 24 nov. 2010 12:44
par Jerome
Re-Coucou,
Peut - être que
ce post vous aidera.
Jérôme
Re: [..] Afficher une image transparente au centre de l'écran.
Posté : jeu. 25 nov. 2010 21:52
par AlapOwner
Merci je vais chercher, je met en Résolu.
Re: [R] Afficher une image transparente au centre de l'écran.
Posté : jeu. 23 déc. 2010 12:41
par Jones
Sinon j'ai cru voir un SplashScreenPNG, il faut que je retrouve ça.
Tu peut utilisé
SplashImageOn pour affiché des images bitmap, GIF et jpeg.
Edit : Voila pour la transparence :
http://autoitscript.fr/forum/viewtopic. ... lit=splash
Re: [R] Afficher une image transparente au centre de l'écran.
Posté : jeu. 20 janv. 2011 11:30
par TommyDDR
... Résolu ? Je ne pense pas non ^^'
Le post n'a pourtant pas été créé le 1er avril !
Revoyez l'aide de "_GDIPlus_ImageLoadFromFile()", en aucun cas il n'affiche une image dans une GUI. Il charge juste en memoire une image se situant dans un fichier.
Un simple GUICtrlCreatePic() devrait emplement vous suffire.
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Dim $Gui
Dim $Gui2
Dim $Pic
Dim $Bouton
$Gui = GUICreate("CrossHair", 185, 38, 197, 152)
$Bouton = GUICtrlCreateButton("Afficher le crosshair", 8, 8, 171, 25)
GUICtrlSetOnEvent($Bouton, "AfficherFenetre")
GUISetOnEvent($GUI_EVENT_CLOSE, "quit", $Gui)
GUISetState(@SW_SHOW, $Gui)
; 50, 50 pour les dimensions de l'image, changez par les votres.
$Gui2 = GUICreate("", 50, 50, -1, -1, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_TOPMOST))
$Pic = GUICtrlCreatePic("Img.bmp", 0, 0, 50, 50)
; Met transparent la couleur 0x00FF00 (Vert)
; Changez 0x00FF00 par VOTRE couleur de fond (celle qui devra être transparente)
_WinAPI_SetLayeredWindowAttributes($Gui2, 0x00FF00)
While(True)
Sleep(10)
WEnd
Func AfficherFenetre()
GUISetState(@SW_SHOW, $Gui2)
EndFunc
Func quit()
Exit
EndFunc
Cependant, la partie non transparente sera toujours cliquable et activera votre fenêtre.
Pas très pratique dans un FPS.
-> Mettez le milieu de votre image en transparent.
Re: [R] Afficher une image transparente au centre de l'écran
Posté : lun. 21 mars 2011 11:42
par AlapOwner
Oups ! J'avais oublié ce projet !
Merci a tous mon probléme est effectivement résolu maintenant !