Page 1 sur 1
[R] Bouton avec ScrollList
Posté : mer. 14 avr. 2010 19:49
par Bubule
Bonjour,
Je viens soulever un problème qui je pense à déjà était réglé, mais je n'ai pas trouvé alors...
Voilà, j'aimerais créer un bouton avec une liste déroulant quand on clic dessus, j'ai trouvé quelque chose de similaire dans GUI_Ctrl_ToolBar mais je n'ai pas réussi à insérer du texte dans la liste.
Merci d'avance
P.S. : Mon bouton ne se trouve pas dans une toolbar, il est dans la GUI, tout simplement

Re: [..] Bouton avec ScrollList
Posté : mer. 14 avr. 2010 22:00
par jl56
Bonjour
Votre description ressemble a une combo, dans l'aide vous trouverez ce code si cela vous convient
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()
Func Example()
Local $msg
GUICreate("My GUI combo") ; will create a dialog box that when displayed is centered
GUICtrlCreateCombo("item1", 10, 10) ; create first item
GUICtrlSetData(-1, "item2|item3", "item3") ; add other item snd set a new default
GUISetState()
; Run the GUI until the dialog is closed
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
EndFunc ;==>Example
A+ JL56
Re: [..] Bouton avec ScrollList
Posté : jeu. 15 avr. 2010 10:36
par Bubule
Non, merci quand même

, ce n'est pas un combo que je désire, c'est un boutton ressemblant à celui-ci :

ou encore :
Lorsque l'on clic dessus, on voit apparaître une scroll list
Re: [..] Bouton avec ScrollList
Posté : jeu. 15 avr. 2010 10:45
par GaRydelaMer
Bonjour
vu comme ca, c'est un menu que tu dois créer.
les fonctions de base dans AutoIt:
GUICtrlCreateMenu
GUICtrlCreateMenuItem
Il va aussi te falloir regarder du coté de
_GUIImageList_Create et consort pour la gestion des images intégrer dans le menu.
Re: [..] Bouton avec ScrollList
Posté : jeu. 15 avr. 2010 10:59
par Bubule
Merci encore, mais (j'en demande toujours plus je sais

) est-il possible de faire cela avec un bouton, car ce menu se trouve en réalité en plein milieu de la GUI...
Mais si ce n'est pas possible, j'utiliserais votre idée GaRydelaMer
Merci à tous !
Re: [..] Bouton avec ScrollList
Posté : jeu. 15 avr. 2010 14:17
par GaRydelaMer
Bonjour
Rien ne t'empêche de créer une GUI enfant que tu positionnes par rapport à ta GUI a l'endroit du boutons.
Dans cette GUI fille tu y créer juste le menu., pour donner l'illusion que c'est un boutons dans ta fenêtre principale.
Regarde bien les styles et les style étendus pour la fille.
Regarde aussi pourquoi des Fenêtres basé sur GDIPlus pour des effets plus zolie encore avec des images PNG avec fond transparents.
Penses à faire une fonction quand la fenêtre principale est déplacée pour que le bouton reste à sa "place".
Re: [..] Bouton avec ScrollList
Posté : jeu. 15 avr. 2010 14:48
par jl56
Bonjour
en utilisant le bouton classique et liste cela donne ceci
ca correspond a l'exemple defragmentation
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
Example()
Func Example()
Local $button1, $mylist, $msg
GUICreate("My GUI list")
$button1 = GUICtrlCreateButton("bouton", 64, 72, 120, 25)
$mylist = GUICtrlCreateList("item1", 64, 97, 120, 97)
GUICtrlSetLimit(-1, 200)
GUICtrlSetData(-1, "item2|item3|item4")
GUISetState()
GUICtrlSetState($mylist, $gui_hide)
$msg = 0
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then
Exit
EndIf
If $msg = $mylist Then
MsgBox(0, "", GUICtrlRead($mylist))
GUICtrlSetState($mylist, $gui_hide)
EndIf
If $msg = $button1 Then
GUICtrlSetState($mylist, $gui_show)
EndIf
WEnd
EndFunc ;==>Example
A+ JL56
Re: [..] Bouton avec ScrollList
Posté : ven. 16 avr. 2010 11:25
par Bubule
Merci !
J'hésite entre les deux solutions, mais je vais tester les deux !
Merci encore !
Re: [R] Bouton avec ScrollList
Posté : ven. 16 avr. 2010 15:36
par GaRydelaMer
Bonjour
j'ai trouver pour le faire sans GUI fille.
► Afficher le texteCode Autoit
Code : Tout sélectionner
#Region ;**** Options AutoIt ****
Opt("MustDeclareVars", 1)
Opt("GUICloseOnESC", 1)
Opt("GUIOnEventMode", 1)
Opt("WinSearchChildren", 1)
Opt("WinTextMatchMode", 1) ;1=complete, 2=quick
Opt("WinTitleMatchMode", -2) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
#EndRegion ;**** Options AutoIt ****
#Include <ButtonConstants.au3>
#Include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#Include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiMenu.au3>
#Include <WinAPI.au3>
Global $Form1, $Button1
Global Enum $idCmd_test1 = 1000, $idCmd_test2, $idCmd_test3
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 633, 447, 192, 124)
$Button1 = GUICtrlCreateButton("Button1", 64, 40, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUICtrlSetOnEvent($Button1, "Bouton_ContextMenu")
While 1
Sleep(100)
WEnd
Func _Exit()
Exit 0
EndFunc ;==>_Exit
Func Bouton_ContextMenu()
Local $hBrush = _WinAPI_GetSysColorBrush($COLOR_INFOBK)
Local $hBmp1 = _WinAPI_CreateSolidBitmap($Form1, 0xFF0000, 11, 11)
Local $hBmp2 = _WinAPI_CreateSolidBitmap($Form1, 0x00FF00, 11, 11)
Local $hMenu = _GUICtrlMenu_CreatePopup(1)
_GUICtrlMenu_SetMenuBackground($hMenu, $hBrush)
_GUICtrlMenu_AddMenuItem($hMenu, "Action Test 1", $idCmd_test1)
_GUICtrlMenu_SetItemBitmaps($hMenu, 0, $hBmp1, $hBmp1)
_GUICtrlMenu_AddMenuItem($hMenu, "Action Test 2", $idCmd_test2)
_GUICtrlMenu_SetItemBitmaps($hMenu, 1, $hBmp2, $hBmp2)
_GUICtrlMenu_AddMenuItem($hMenu, "Quitter", $idCmd_test3)
Local $WinPos = WinGetPos($Form1, "")
Local $GetClientSize = WinGetClientSize($Form1, "")
Local $CtlPos = ControlGetPos($Form1, "", $Button1)
Local $x = $CtlPos[0] + $WinPos[0] + ($WinPos[2] - $GetClientSize[0]) - 2
Local $y = $CtlPos[1] + $CtlPos[3] + $WinPos[1] + ($WinPos[3] - $GetClientSize[1]) - 5
Local $idCommand = _GUICtrlMenu_TrackPopupMenu($hMenu, @GUI_CtrlHandle, $x, $y, 1, 1, 2)
_GUICtrlMenu_DestroyMenu($hMenu)
_Events_Bt_ContextMenu($idCommand)
EndFunc ;==>Bouton_ContextMenu
Func _Events_Bt_ContextMenu($idCmd)
Switch $idCmd
Case $idCmd_test1
MsgBox(0, "Test", "TEST1")
Case $idCmd_test2
MsgBox(0, "Test", "TEST2")
Case $idCmd_test3
;~ MsgBox(0, "Test", "Quitter")
_Exit()
EndSwitch
EndFunc ;==>_Events_Bt_ContextMenu
Re: [R] Bouton avec ScrollList
Posté : ven. 16 avr. 2010 17:15
par Tlem
Whaouuu, AutoIt m'étonnera toujours de plus en plus ...

Re: [R] Bouton avec ScrollList
Posté : sam. 17 avr. 2010 10:56
par Bubule
Tlem a écrit :Whaouuu, AutoIt m'étonnera toujours de plus en plus ...

Effectivement, un grand grand merci à toi GaRydelaMer
