[R] GuiCtrlCreateList question

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jamesst20
Niveau 5
Niveau 5
Messages : 189
Enregistré le : jeu. 05 nov. 2009 00:50
Status : Hors ligne

[R] GuiCtrlCreateList question

#1

Message 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
Modifié en dernier par jamesst20 le jeu. 25 mars 2010 18:38, modifié 3 fois.
Sparkdaemon
Niveau 3
Niveau 3
Messages : 38
Enregistré le : jeu. 04 mars 2010 19:18
Localisation : $Coord
Status : Hors ligne

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

#2

Message par Sparkdaemon »

T'a essayé Guictrlsetfont ?
EDIT : Nan laisse tomber xD
jamesst20
Niveau 5
Niveau 5
Messages : 189
Enregistré le : jeu. 05 nov. 2009 00:50
Status : Hors ligne

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

#3

Message 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
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] GuiCtrlCreateList question

#4

Message 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)
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
jamesst20
Niveau 5
Niveau 5
Messages : 189
Enregistré le : jeu. 05 nov. 2009 00:50
Status : Hors ligne

Re: [..] GuiCtrlCreateList question

#5

Message par jamesst20 »

C'est moins pire mais il reste encore les lignes :( !
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [..] GuiCtrlCreateList question

#6

Message 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 !
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
jamesst20
Niveau 5
Niveau 5
Messages : 189
Enregistré le : jeu. 05 nov. 2009 00:50
Status : Hors ligne

Re: [..] GuiCtrlCreateList question

#7

Message par jamesst20 »

Salut moi j'ai trouver sa:

a place de -1 c'est -0
► Afficher le textetrouver!
et sa fonctionne!
Merci
SagePourpre
Niveau 7
Niveau 7
Messages : 442
Enregistré le : dim. 06 juil. 2008 09:11
Status : Hors ligne

Re: [R] GuiCtrlCreateList question

#8

Message 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 ).
Le Sage Pourpre, pour qui la vie est tellement
plus belle vue du haut de son Pouf = )
Répondre