Page 1 sur 1
[..] Affichage d'image sur une form
Posté : mer. 08 oct. 2008 12:32
par Axxcat
Bonjour
J'ai créer une form avec Koda, elle contiens 2 images crées avec la commande
Code : Tout sélectionner
Global $Pict = GUICtrlCreatePic("", 8, 72, 260, 230, $SS_CENTERIMAGE)
Global $PictMod = GUICtrlCreatePic("", 264, 72, 260, 230, $SS_CENTERIMAGE)
Lorsque j'assigne une image à mon contrôle, les 2 images se superposent, et je voit l'une a travers l'autre.
Code : Tout sélectionner
GUICtrlSetImage ($Pict,$WorkRefDir & $ScreenRef)
GUICtrlSetImage ($PictMod,$WorkRefDir & $ScreenRefm)
Les images sont en bmp.
Refaire un GUICtrlCreatePic par dessus $PictMod n'a pas l'aire de fonctionner?
Avez vous déjà rencontré ce problème?
Merci
Re: Affichage d'image sur une form
Posté : mer. 08 oct. 2008 14:12
par Axxcat
J'ai remarqué que l'ancienne image disparait si on passe une autre fenêtre sur ma form.
J'ai dont fait un
Et cela fonctionne mais cela fat clignoter ma fenêtre!
Il doit y avoir une fonction de mise a jours des graphiques que j'ai du loupé.
Re: [..] Affichage d'image sur une form
Posté : mer. 08 oct. 2008 16:04
par timmalos
Peut etre qu'un simple GUICtrlSetState($Pict,@SW_HIDE) avant de mettre la 2eme image suffit?
Re: [..] Affichage d'image sur une form
Posté : mer. 08 oct. 2008 22:01
par Tlem
La fonction GUICtrlCreatePic comme son nom l'indique, attribue une image à un contrôle.
Si vous souhaitez attribuer une autre image à ce contrôle au cours de votre script, utilisez la fonction au moment ou il faut le faire et non lors de la création de l'interface graphique.
Utilisez un premier GUICtrlCreatePic lors de la création de la GUI (pour attribuer l'image de départ) puis en fonction de l'action qui doit entraîner le changement de cette image, utilisez GUICtrlSetImage pour la nouvelle image.
Re: [..] Affichage d'image sur une form
Posté : jeu. 09 oct. 2008 14:55
par Axxcat
Merci a tous les deux
La solution de
timmalos ne fonctionne pas. (Je l'ai fait juste pour vérifier)
Code : Tout sélectionner
GUICtrlSetState($Pict,@SW_HIDE)
GUICtrlSetState($PictMod,@SW_HIDE)
GUICtrlSetImage ($Pict,$WorkRefDir & $ScreenRef)
GUICtrlSetImage ($PictMod,$WorkRefDir & $ScreenRefm)
Et pour celle de
Tlem qui il est vrait serait une solution propre, elle plante et n'affiche rien du tout. Je pense que c'est parce que les deux CtrlPic se retrouvent l'un sur l'autre. Il faut donc supprimer au préalable Le CtrlPict mais j'ai trouver des CtrlDestroy pour tous les control sauf le pic!
Cette solution apporte un autre problème si je change mon interface graphique qui est décrite en amont de mon programme (exemple je déplace l'image) il faut alors que je change le code partout ou je met a jours cette image! Ce qui n'est pas pratique.
En tous cas merci de votre aide
Re: [..] Affichage d'image sur une form
Posté : ven. 10 oct. 2008 01:21
par Tlem
Je crois que vous n'avez pas très bien compris mes explications.
Voici un exemple concret de ce que j'ai dit :
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 239, 229, 193, 125)
$Pic1 = GUICtrlCreatePic("", 8, 8, 220, 172, $SS_CENTERIMAGE)
$Button1 = GUICtrlCreateButton("Image 1", 8, 192, 70, 25, 0)
$Button2 = GUICtrlCreateButton("Image 2", 80, 192, 70, 25, 0)
$Button3 = GUICtrlCreateButton("Image 3", 152, 192, 70, 25, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
GUICtrlSetImage ($Pic1,"C:\WINDOWS\winnt.bmp")
Case $Button2
GUICtrlSetImage ($Pic1,"C:\WINDOWS\Plume.bmp")
Case $Button3
GUICtrlSetImage ($Pic1,"C:\WINDOWS\Zapotec.bmp")
EndSwitch
WEnd