Page 1 sur 1
[R] GUISetBkColor et GUICtrlCreatePic
Posté : mar. 03 juil. 2012 16:29
par TopXm
Hello
J'ai un léger souci, quand j'ajoute deux images (.JPG) sur ma GUI et que je définis le backcolor de ma GUI, cela altère les images.
Voici le script :
► Afficher le texteScript d'exemple
Code : Tout sélectionner
;
; Test BackColor
;
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global Const $BinFileName = @TempDir & '\Temp.bin'
Global Const $TabItemText[3] = ["File d'attente", "Options", "?"]
Global Const $TempDir = @TempDir & '\TrcUploader\'
Global Const $IconName = $TempDir & 'awtu.ico'
Global Const $GuiBackColor = 0xFEFEFE
_InstallFiles()
_GUIprepare()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
DirRemove(@TempDir & '\TrcUploader', 1)
Func _GUIprepare()
Global $GuiTRC = GUICreate("Gestion des documents (Treath Report Center)", 635, 500, 192, 146, _
BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_TABSTOP))
GUISetBkColor($GuiBackColor)
GUISetIcon($IconName)
Global $hFond = GUICtrlCreatePic($TempDir & 'BandeLogo.jpg', 0, 2, 634, 112)
GUICtrlSetState($hFond, $GUI_DISABLE)
Global $hFrame = GUICtrlCreatePic($TempDir & 'TrcFrame.jpg', 0, 148, 634, 331)
GUICtrlSetState($hFond, $GUI_DISABLE)
GUISetState(@SW_SHOW)
EndFunc ;==>_GUIprepare
Func _InstallFiles()
DirCreate($TempDir)
FileInstall('C:\Users\TopXm\Desktop\Dev\Threat Report Downloader\Resources\BandeLogo.jpg', _
$TempDir & 'BandeLogo.jpg', 1)
FileInstall('C:\Users\TopXm\Desktop\Dev\Threat Report Downloader\Resources\TrcFrame.jpg', _
$TempDir & 'TrcFrame.jpg', 1)
FileInstall('C:\Users\TopXm\Desktop\Dev\Threat Report Downloader\Resources\awtu.ico', _
$TempDir & 'awtu.ico', 1)
EndFunc
Voici le ZIP contenant les images (et l'AU3 dans l'élan) :
- TRC.zip
- (34.06 Kio) Téléchargé 193 fois
Il suffit de mettre le GUISetBkColor en commentaire pour voir la différence
Je dois zapper un truc tout ballot, mais là j'avoue je ne capte pas trop le pourquoi du comment.
Merci d'avance
Re: [..] GUISetBkColor et GUICtrlCreatePic
Posté : mar. 03 juil. 2012 17:17
par silvere
Code : Tout sélectionner
Global $hFond = GUICtrlCreatePic($TempDir & 'BandeLogo.jpg', 0, 2, 634, 112)
GUICtrlSetState($hFond, $GUI_DISABLE)
Global $hFrame = GUICtrlCreatePic($TempDir & 'TrcFrame.jpg', 0, 148, 634, 331)
GUICtrlSetState($hFond, $GUI_DISABLE)
Sa a rien avoir mais t'a mis 2 fois GUICtrlSetState($hFond, $GUI_DISABLE) en oubliant de changer la variable.
Re: [..] GUISetBkColor et GUICtrlCreatePic
Posté : mar. 03 juil. 2012 17:28
par TopXm
Salut,
C'est un exemple donc j'ai fait des copiés/collés à l'arrache, après du coup ce bout de code passe à la trappe
Néanmoins merci ça montre que tu as pris le temps de lire le code

Re: [..] GUISetBkColor et GUICtrlCreatePic
Posté : mar. 03 juil. 2012 20:36
par jguinch
Salut
C'est lié au format des images.
En convertissant en BMP, le problème n'apparaît pas. Je n'ai pas essayé d'autres formats.
Re: [..] GUISetBkColor et GUICtrlCreatePic
Posté : mer. 04 juil. 2012 19:11
par TopXm
Hello
J'avais aussi testé via un autre format d'image (BMP en l'occurence) mais cela ne change rien à mon problème chez moi.
@jguinchard : ça fonctionne chez toi ? Perso voici ce que ça donne avec un fond jaune par exemple :
► Afficher le texteCapture
Re: [..] GUISetBkColor et GUICtrlCreatePic
Posté : mer. 04 juil. 2012 22:15
par jguinch
oups .... autant pour moi, j'avais mis un commentaire sur la couleur de fond... forcément !
J'ai bien reproduit le problème. Je cherche aussi du coup....
[...]
Finalement, j'ai trouvé comment contourner ce problème, mais je n'ai pas l'explication.
En convertissant les images au format ICO (avec XnView) et en utilisant GUICtrlCreateIcon(), le problème n'apparaît pas.
Peut-être que les Bitmaps sont mal supportées, je n'ai pas pris le temps de chercher.
J'ai modifié le fichier joint dans mon premier post avec les modifications (format ico).
Je suis preneur d'une vrai solution et/ou explication
Re: [..] GUISetBkColor et GUICtrlCreatePic
Posté : mer. 04 juil. 2012 22:26
par mikell
Très bizarre
Si on modifie le jpg avec un éditeur d'images (la luminosité par exemple) les altérations se déplacent
Si on fait en sorte que les valeurs RGB ne soient pas identiques dans le jpg (pas de vrai gris) , les altérations disparaissent
Re: [..] GUISetBkColor et GUICtrlCreatePic
Posté : jeu. 05 juil. 2012 03:41
par TopXm
Hello

Bon je ne me suis pas cassé la nenette, j'ai fait l'image de fond de la taille de ma GUI avec tout le nécessaire
► Afficher le texteImage de fond
Je laisse néanmoins le sujet ouvert quelques jours au cas où quelqu'un aurait une idée qui va bien car je serai intéressé de connaitre un solution à ce souci.