Page 1 sur 1

[R] GUI - Top most

Posté : mar. 24 avr. 2012 18:01
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.

Re: [..] GUI - Top most

Posté : mar. 24 avr. 2012 18:23
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)
:)

Re: [..] GUI - Top most

Posté : mar. 24 avr. 2012 18:26
par DimVar
Merci, mais je souhaite modifier le statut au cours du script, pas à la creation de la GUI.

Re: [..] GUI - Top most

Posté : mar. 24 avr. 2012 18:44
par Uranium
Pardon :oops:

Code : Tout sélectionner

WinSetOnTop($Form1, "", 1)
Alors ?

Re: [..] GUI - Top most

Posté : mar. 24 avr. 2012 19:42
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.

Re: [..] GUI - Top most

Posté : mar. 24 avr. 2012 21:54
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

Re: [..] GUI - Top most

Posté : mer. 25 avr. 2012 10:03
par DimVar
Merci Mikell, on ne peut donc modifier l'etat de la GUI avec GUISetStyle au cours d'un script ?

Re: [..] GUI - Top most

Posté : mer. 25 avr. 2012 11:30
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)

Re: [..] GUI - Top most

Posté : mer. 25 avr. 2012 11:41
par DimVar
C'est ce que je voulais dire par "temporairement" :roll:

Re: [..] GUI - Top most

Posté : mer. 25 avr. 2012 13:32
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 :?

Re: [..] GUI - Top most

Posté : mer. 25 avr. 2012 16:13
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...

Re: [..] GUI - Top most

Posté : jeu. 26 avr. 2012 09:45
par DimVar
Effectivement !

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


Cdlt.