[..] Créer une GUICreate autre que rectangle ou carrée
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[..] Créer une GUICreate autre que rectangle ou carrée
Bonjour a tous, (Heureux de retrouver le forum )
1- Voila je souhaiterais créer une GUICreate d'une autre forme (arrondi) que rectangle est-ce possible ?
2-Est-ce possible sinon de'integrer dans le GUICreate rectangle une forme arrondi ?
Merci de votre aide !
1- Voila je souhaiterais créer une GUICreate d'une autre forme (arrondi) que rectangle est-ce possible ?
2-Est-ce possible sinon de'integrer dans le GUICreate rectangle une forme arrondi ?
Merci de votre aide !
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
oui oui.
voilà un vieille exple que j'avais fait il y a qq années, depuis j'ai amélioré le drag n drop de la GUI (remarquez qu'à l'époque _ispressed ne faisait pas parti des udf, et il fallait la recopier en local ^^, je pense qu'on l'enlevée modulo l'include) :
ps1 : le background était un gif de la terre dont j'avais dégagé les bords en les rendant transparent, et donc cette GUI est "ronde" comme la terre. En réalité c'est un rectangel déguisé , mais la var $WS_EX_LAYERED fait que même si on clique dans la zone transparente, rien ne se passe
[ edit ] : finalement dans cette version on n'a plus besoin de _ispressed. Avant j'utilisait une touche pour déplacer la fenêtre, voilà voilà ...
voilà un vieille exple que j'avais fait il y a qq années, depuis j'ai amélioré le drag n drop de la GUI (remarquez qu'à l'époque _ispressed ne faisait pas parti des udf, et il fallait la recopier en local ^^, je pense qu'on l'enlevée modulo l'include) :
Code : Tout sélectionner
opt ( "GUIONEVENTMODE" , 1 )
#include <GUIConstants.au3>
;GUI
GUICreate ( "title" , 300 , 300 , 30 , 30 , $WS_POPUP , $WS_EX_LAYERED )
$B = GUICtrlCreateButton ( "TEST" , 100 , 100 , 50 , 50 , - 1 , 0x00000020 )
GuiCtrlSetOnEvent ( $B , "hello" )
$B2 = GUICtrlCreateButton ( "quit" , 200 , 100 , 50 , 50 , - 1 , 0x00000020 )
GuiCtrlSetOnEvent ( $B2 , "_exit" )
$inp = GUICtrlCreateInput ( "world" , 150 , 220 , 50 , 20 )
$n = GUICtrlCreatePic ( "Background1.gif" , 0 , 0 , 300 , 300 , - 1 , 0x00000020 )
GuiCtrlSetOnEvent ( $n , "_move" )
GUISetState ( @SW_SHOW )
GuiCtrlSetState ( $B , $GUI_FOCUS )
GuiCtrlSetState ( $B2 , $GUI_FOCUS )
GuiCtrlSetState ( $inp , $GUI_FOCUS )
GuiCtrlSetState ( $B , $GUI_FOCUS )
GUISetOnEvent ( $GUI_EVENT_CLOSE , "_Exit" )
while 1
Wend
func _exit ( )
Exit
EndFunc
Func Hello ( )
MsgBox ( 0 , "hello" , GUICtrlRead ( $inp ) )
EndFunc
func _move ( )
opt ( "GUIONEVENTMODE" , 0 )
$posw = WinGetPos ( "title" )
$poss = MouseGetPos ( )
$deltax = $poss[0] - $posw[0]
$deltay = $poss[1] - $posw[1]
Do
$msg = GUIGetMsg ( )
Until $msg == $GUI_EVENT_PRIMARYUP
$pos = MouseGetPos ( )
WinMove ( "title" , "" , $pos[0] - $deltax , $pos[1] - $deltay )
opt ( "GUIONEVENTMODE" , 1 )
EndFunc
Func _IsPressed ( $hexKey )
Local $aR , $bRv
$hexKey = '0x' & $hexKey
$aR = DllCall ( "user32" , "int" , "GetAsyncKeyState" , "int" , $hexKey )
If $aR[0] <> 0 Then
$bRv = 1
Else
$bRv = 0
EndIf
Return $bRv
EndFunc
ps1 : le background était un gif de la terre dont j'avais dégagé les bords en les rendant transparent, et donc cette GUI est "ronde" comme la terre. En réalité c'est un rectangel déguisé , mais la var $WS_EX_LAYERED fait que même si on clique dans la zone transparente, rien ne se passe
[ edit ] : finalement dans cette version on n'a plus besoin de _ispressed. Avant j'utilisait une touche pour déplacer la fenêtre, voilà voilà ...
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Euh ...
J'ai essayé sur un script modifié mais je n'y arrive pas les boutons ne marchent pas
Si vous pouviez m'aider
Script :
MiXS Media Player version 1.1.au3
Image :
J'ai essayé sur un script modifié mais je n'y arrive pas les boutons ne marchent pas
Si vous pouviez m'aider
Script :
MiXS Media Player version 1.1.au3
Image :
Voici un lien mais c'est a toi de le creer
GuiList.au3
Tu selectionne tout et tu copie le tout dans autoit et tu le met dans le dossier AutoIt3/Include
Ps:Désolé je n'ai rien trouvé de mieux
GuiList.au3
Tu selectionne tout et tu copie le tout dans autoit et tu le met dans le dossier AutoIt3/Include
Ps:Désolé je n'ai rien trouvé de mieux
- Tlem
- Site Admin
- Messages : 11773
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Si Si , il y à plus simple : GuiList.au3
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Ok, je viens de l'intégrer, j'ai juste dû faire une fonction bouchon _IsClassName qui était inconue dans mon environnement.
En tout cas la lecture, pause, arrêt, avance rapide / recule et volume sonore ont l'aire de marcher
effectivement pour la progressbar, et le temps évalué c'est pas encore prêt.
j'ai rebasculer en transparence, et ai constaté qu'il faudra imposer des background aux controles de type listebox, edit ... sinon les fonds deviennent transparent.
reste à creuser
En tout cas la lecture, pause, arrêt, avance rapide / recule et volume sonore ont l'aire de marcher
effectivement pour la progressbar, et le temps évalué c'est pas encore prêt.
j'ai rebasculer en transparence, et ai constaté qu'il faudra imposer des background aux controles de type listebox, edit ... sinon les fonds deviennent transparent.
reste à creuser
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
juste un ajout : tu devrais utiliser un slider vertical (maintenant que j'y pense je crois que t'avais poser la question avant le problème du site) :
après tu lis la valeur, et tu interprètres la valeur comme un pourcentage du volume
Code : Tout sélectionner
GUICtrlCreateSlider (10,10,20,200,$TBS_VERT)
GUICtrlSetLimit(-1,100,0) ; change min/max value
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
-
- Niveau 11
- Messages : 1826
- Enregistré le : lun. 23 juil. 2007 12:31
- Localisation : Bureau
- Status : Hors ligne
Pour créer une interface de forme non conventionnel (ronde, polygone, pyramide,....) on a la possibilité d'utiliser la dll GDI, celle-ci signifie Graphique disegn interface, les possibilités sont immense.
Pour cela on va faire appel a une fonction du user32, setwindowrgn (fixer fenêtre region), couplé par les fonctions du GDI.
Pour le reste il existe une bibliotheque Skin.au3, faite les recherche concernant ceux-ci.
Pour cela on va faire appel a une fonction du user32, setwindowrgn (fixer fenêtre region), couplé par les fonctions du GDI.
Pour le reste il existe une bibliotheque Skin.au3, faite les recherche concernant ceux-ci.
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
lance la lecture d'un mp3, puis lance ce script pour le tester.
En gros, il suffit de mettre un évènement sur le slider lui même
En gros, il suffit de mettre un évènement sur le slider lui même
Code : Tout sélectionner
#include <GUIConstants.au3>
GUICreate ( "slider" , 220 , 400 , 200 , 200 )
GUISetBkColor ( 0x00E0FFFF ) ; will change background color
SoundSetWaveVolume ( 50 )
$slider1 = GUICtrlCreateSlider ( 10 , 10 , 20 , 200 , $TBS_VERT )
GUICtrlSetLimit ( - 1 , 100 , 0 ) ; change min/max value
GUICtrlSetData ( - 1 , 50 )
;$button = GUICtrlCreateButton ( "Value?" , 75 , 70 , 70 , 20 )
GUISetState ( )
GUICtrlSetData ( $slider1 , 45 ) ; set cursor
$start = TimerInit ( )
Do
$n = GUIGetMsg ( )
If $n = $slider1 Then
$val = GUICtrlRead ( $slider1 )
SoundSetWaveVolume ( 100 - $val ) ; comme la position haute correspond à0 , l semble plus naturel d'inverser
EndIf
Until $n = $GUI_EVENT_CLOSE
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
- sylvanie
- Niveau 11
- Messages : 1550
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
quand tu dis que ça ne marche pas, tu parles au niveau de l'intégration dans ton code ? car dans l'exple envoyé, j'ai bien le volume qui chande en fonction du slider. Cependant, il ne s'agit que du son "wave" pas le général.
Pour les pbs de bouton par contre, je n'arrive pas à reprobduire le problème. La gui arrive bien sous la forme autre que rectangulaire, et le bouton déclanchent bien les actions ... hormis les pbs évoqués plus haut (background ...)
Pour les pbs de bouton par contre, je n'arrive pas à reprobduire le problème. La gui arrive bien sous la forme autre que rectangulaire, et le bouton déclanchent bien les actions ... hormis les pbs évoqués plus haut (background ...)
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Non le reglage du volume ne marche pas integré ou pas !
Dans le mixeur du volume (windows) on voit bien que le son du slider se regle mais il ne change pas le volume du player
Pour les contours je l'ai fais avec EzSkin donc ca marche mieux !
Mais seul probleme avec celui ci c'est que je ne peut pas enlever le contour de la fenetre (fermer,reduir,aggrandir)!
Pour les boutons avec EzSkin ils marchent nickel !
Dans le mixeur du volume (windows) on voit bien que le son du slider se regle mais il ne change pas le volume du player
Pour les contours je l'ai fais avec EzSkin donc ca marche mieux !
Mais seul probleme avec celui ci c'est que je ne peut pas enlever le contour de la fenetre (fermer,reduir,aggrandir)!
Pour les boutons avec EzSkin ils marchent nickel !