[R] GUI - Top most

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

[R] GUI - Top most

#1

Message par DimVar »

Shame on me, mais pas moyen de figer une fenetre au dessus des autres...
[EDIT] au cours du script et non à la creation.
J'avais pensé à ca entre autre.

Code : Tout sélectionner

GUISetStyle (-1,$WS_EX_TOPMOST)

Bien le Bonjour.
Modifié en dernier par DimVar le mer. 25 avr. 2012 21:33, modifié 2 fois.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
Uranium
Niveau 5
Niveau 5
Messages : 143
Enregistré le : mer. 28 mars 2012 13:13
Status : Hors ligne

Re: [..] GUI - Top most

#2

Message par Uranium »

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 615, 440, 192, 124, -1,$WS_EX_TOPMOST)
GUISetState()
Sleep(10000)
:)
« En mathématiques, “évident” est le mot le plus dangereux. »
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] GUI - Top most

#3

Message par DimVar »

Merci, mais je souhaite modifier le statut au cours du script, pas à la creation de la GUI.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
Uranium
Niveau 5
Niveau 5
Messages : 143
Enregistré le : mer. 28 mars 2012 13:13
Status : Hors ligne

Re: [..] GUI - Top most

#4

Message par Uranium »

Pardon :oops:

Code : Tout sélectionner

WinSetOnTop($Form1, "", 1)
Alors ?
« En mathématiques, “évident” est le mot le plus dangereux. »
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] GUI - Top most

#5

Message par DimVar »

Pas de pardon quand on a pas commis d'erreur ;)

Les fonctions win agissent certes sur les fenêtres, mais il me semble que cette fonction mets temporairement une fenêtre au 1er plan. (a tester)

Merci à vous.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] GUI - Top most

#6

Message par mikell »

Code : Tout sélectionner

Func _WinAPI_SetWindowPos($hWnd, $hAfter, $iX, $iY, $iCX, $iCY, $iFlags)
; Z order
; $HWND_BOTTOM      = 1 ; Places the window at the bottom of the Z order
; $HWND_NOTOPMOST   = -2 ; Places the window above all non-topmost windows
; $HWND_TOP         = 0 ; Places the window at the top of the Z order
; $HWND_TOPMOST     = -1 ; Places the window above all non-topmost windows
    Local $aResult = DllCall("user32.dll", "bool", "SetWindowPos", "hwnd", $hWnd, _ 
            "hwnd", $hAfter, "int", $iX, "int", $iY, "int", $iCX, "int", $iCY, "uint", $iFlags)
    If @error Then Return SetError(@error, @extended, False)
    Return $aResult[0]
EndFunc   ;==>_WinAPI_SetWindowPos
exemple :

Code : Tout sélectionner

_WinAPI_SetWindowPos($mainGui, -1, -1, -1, -1, -1, BitOR(0x0001, 0x0002)) ; $SWP_NOSIZE, $SWP_NOMOVE
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] GUI - Top most

#7

Message par DimVar »

Merci Mikell, on ne peut donc modifier l'etat de la GUI avec GUISetStyle au cours d'un script ?
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] GUI - Top most

#8

Message par TommyDDR »

DimVar a écrit :Les fonctions win agissent certes sur les fenêtres, mais il me semble que cette fonction mets temporairement une fenêtre au 1er plan. (a tester)
temporairement -> jusqu'à ce qu'une autre fenêtre soit mise au premier plan (comme toutes les autre fonctions qui mettront au premier plan une fenêtre)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] GUI - Top most

#9

Message par DimVar »

C'est ce que je voulais dire par "temporairement" :roll:
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] GUI - Top most

#10

Message par mikell »

Moui, conserver une fenêtre en topmost de manière permanente veut dire surveiller son z-order dans une boucle while, ya plusieurs moyens de le faire mais ça freine rudement le script :?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] GUI - Top most

#11

Message par TommyDDR »

Sans scan en boucle c'est tout simplement impossible de faire cela, en effet, imaginons que cela existe "WinSetOnTopTop" Que se passerait-il si vous utilisiez la fonction dans 2 script ?

Votre 1ere fenêtre passerait alors 2eme :P
Tout comme le fait déjà WinSetOnTop.

De base windows ne possède pas beaucoup de fenêtre en TOP.
À part de task manager, vous ne devriez pas être embêté, et encore... passer devant le task manager peut être considéré comme malsain...
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [..] GUI - Top most

#12

Message par DimVar »

Effectivement !

J'ai eu mon explication et mes solutions, merci à vous.
Je clos.


Cdlt.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Répondre