Page 1 sur 1

[R] GuiCtrlCreateList question

Posté : mer. 24 mars 2010 23:06
par jamesst20
Nouveau probleme voir 3 messages plus bas Merci!



Bonjour à tous, Voici un screenshot de mon programme:

Image

J'aimerais que la list au lieu d'etre blanche soit de la couleur de mon Gui (ou transparant) et que lorsque qu'il y aura une liste, l'écriture soit noir.. (dans le font que le fond de la liste soit transparant.

En gros voici ce que je veut que sa donne mais avec de l'écriture bien sur :P

Image

Merci Beaucoup

Re: [..] GuiCtrlCreateList avec la couleur du Gui?

Posté : mer. 24 mars 2010 23:58
par Sparkdaemon
T'a essayé Guictrlsetfont ?
EDIT : Nan laisse tomber xD

Re: [..] GuiCtrlCreateList avec la couleur du Gui?

Posté : jeu. 25 mars 2010 00:03
par jamesst20
C'est bon jai trouver! avec sa: GUICtrlSetBkColor(-1, 0xA6CAF0)
Mais un nouveau rpobleme :( On voit les contour comme vous pouvez voir sur l'Image.. :(

Image

Merci

Re: [..] GuiCtrlCreateList question

Posté : jeu. 25 mars 2010 02:15
par SagePourpre
La première chose à vérifier pour un problème de ce genre, c'est
la liste des styles étendus de ton contrôle (Il y'a toujours
un lien dans GuiCtrlCreate... vers la page.


Dans ton cas, assigner le style étendu $WS_EX_TRANSPARENT
règle ton problème

Code : Tout sélectionner

#include <WindowsConstants.au3>
#include<GUIConstantsEx.au3>


$gui = GUICreate("te")

GUICtrlCreateList("ew2",0,0,100,100,-1,$WS_EX_TRANSPARENT)
GUICtrlSetBkColor(-1,0X000FFF)
GUISetState()

Sleep(3000)

Re: [..] GuiCtrlCreateList question

Posté : jeu. 25 mars 2010 02:47
par jamesst20
C'est moins pire mais il reste encore les lignes :( !

Re: [..] GuiCtrlCreateList question

Posté : jeu. 25 mars 2010 03:23
par SagePourpre
Si tu regarde dans l'include associé à ton contrôle, tu peux trouver les constantes
disponibles pour ce même contrôle.

En regardant dans ListBoxConstants.au3, on peut voir que le style par défaut (-1) est en réalité ceci

Code : Tout sélectionner

$GUI_SS_DEFAULT_LIST = BitOR($LBS_SORT, $__LISTBOXCONSTANT_WS_BORDER, $__LISTBOXCONSTANT_WS_VSCROLL, $LBS_NOTIFY)
Donc, en faisant

Code : Tout sélectionner

GUICtrlCreateList("blu",0,0,100,100) ou GUICtrlCreateList("blu",0,0,100,100,-1)
tu fais en fait

Code : Tout sélectionner

GUICtrlCreateList("blu",0,0,100,100,$GUI_SS_DEFAULT_LIST)
Dans l'include, on peut voir que

Code : Tout sélectionner

$GUI_SS_DEFAULT_LIST = BitOR($LBS_SORT, $__LISTBOXCONSTANT_WS_BORDER, $__LISTBOXCONSTANT_WS_VSCROLL, $LBS_NOTIFY)
Tu vois quelque chose qui cloche ?
( indice : $__LISTBOXCONSTANT_WS_BORDER )

Donc... En enlevant ce paramètre de la formule, cela donne :

Code : Tout sélectionner

GUICtrlCreateList("ew2",110,0,100,100,BitOR($LBS_SORT,$__LISTBOXCONSTANT_WS_VSCROLL, $LBS_NOTIFY))
Si tu testes cette liste, il reste néanmoins une mince bordure...

En utilisant le style étendu de tout à l'heure, ça élimine complètement le problème :



Pour résumé, on passe de

Code : Tout sélectionner

GUICtrlCreateList("ew2",110,0,100,100,-1,$WS_EX_TRANSPARENT)
qui je rappelle est la même chose que

Code : Tout sélectionner

GUICtrlCreateList("ew2",110,0,100,100,$GUI_SS_DEFAULT_LIST, $LBS_NOTIFY),$WS_EX_TRANSPARENT)
($GUI_SS_DEFAULT_LIST étant lui même remplaçable par ci-dessous)

Code : Tout sélectionner

GUICtrlCreateList("ew2",110,0,100,100,BitOR($LBS_SORT, $__LISTBOXCONSTANT_WS_BORDER, $__LISTBOXCONSTANT_WS_VSCROLL, $LBS_NOTIFY),$WS_EX_TRANSPARENT)
Donc...

En enlevant la constante qui mentionne la bordure ( $__LISTBOXCONSTANT_WS_BORDER ), on règle entièrement le problème et la fonction
finale ressemble à :

Code : Tout sélectionner

GUICtrlCreateList("ew2",110,0,100,100,BitOR($LBS_SORT, $__LISTBOXCONSTANT_WS_VSCROLL, $LBS_NOTIFY),$WS_EX_TRANSPARENT)
Tadam !

Re: [..] GuiCtrlCreateList question

Posté : jeu. 25 mars 2010 18:37
par jamesst20
Salut moi j'ai trouver sa:

a place de -1 c'est -0
► Afficher le textetrouver!
et sa fonctionne!
Merci

Re: [R] GuiCtrlCreateList question

Posté : jeu. 25 mars 2010 19:16
par SagePourpre
Oui, mais non...


Effectivement, ça fonctionne mais ce n'est pas valide.
"-0" n'est pas un paramètre valide. Par conséquent, l'utilisation de

Code : Tout sélectionner

GUICtrlCreateList("ew2",110,0,100,100,"c'est n'importe quoi",$WS_EX_TRANSPARENT)
fonctionne aussi bien que ton "-0".

Tout ce que tu fais, c'est créé une erreur au niveau de l'attribution des styles de ce contrôles, ce qui fait
que le style par défaut ni aucun autre d'ailleurs n'est appliqué .

Code : Tout sélectionner

GUICtrlCreateList("ew2",110,0,100,100,BitOR($LBS_SORT, $__LISTBOXCONSTANT_WS_VSCROLL, $LBS_NOTIFY),$WS_EX_TRANSPARENT)
Mon code a l'avantage d'enlever uniquement l'élément qu'on ne veut pas tout en conservant les autres
éléments par défaut (WS_VSCROLL et LBS_NOTIFY) .


Tu fais comme tu veux, c'est ton code mais voilà... "0" est un paramètre invalide (et ce, même
la listbox est quand même créée ).