Page 1 sur 2

[..] Cacher une partie d'une fenêtre

Posté : sam. 28 sept. 2013 23:21
par Rancar
Bonsoir,

Après une longue absence, j'ai une petite (ou grande, je ne sais pas trop) question.

Est-il possible de cacher une partie d'une fenêtre, sans utiliser les ControlHide/Show ? Si oui, comment ? :)

Par exemple, diviser une fenêtre en deux. Une partie sera visible, l'autre pas =)

Merci à vous :)

Re: [..] Cacher une partie d'une fenêtre

Posté : sam. 28 sept. 2013 23:59
par Tlem
En la redimensionnant ?

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 00:06
par Rancar
Le problème c'est que ça ne cache pas sur la partie souhaitée. Le redimensionnement va cacher une partie, certes, mais peut-être pas la partie que je souhaites (par exemple le milieu ou autre) ^^

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 10:19
par Tlem
Hé bien dans ce cas, faites une autre GUI par dessus la première en prenant soins de ne pas afficher la barre de titre et le cadre (mais franchement, c'est du bricolage). :mrgreen:

Pour masquer des contrôles, la logique veux que vous utilisiez la fonction idoine et que vous désactiviez le contrôle. Certes si vous avez plusieurs contrôles, il vous faudra plusieurs lignes de code ou une fonction spécifique qui prendra l'ID (mémorisé) de chaque contrôle pour les activer/désactiver. Mais pour économiser 20 lignes de code et ce simplifier la vie, certains sont prêt à faire des choses ridicules. :roll:

Si vos contrôles tiennent dans un carré, ça peut le faire, mais si la forme doit être tordue, alors oubliez cette solution.

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 11:25
par mikell
+1
Pourquoi diable "sans utiliser les ControlHide/Show" ?

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 14:53
par Rancar
En fait, pour être plus précis, je ne peux utiliser ControlHide/Show puisque cela cache le contrôle en entier. Or, je voudrais cacher qu'une partie de ce contrôle afin de pouvoir voir le bureau par exemple ^^
Je ne sais pas si c'est possible en AutoIT ou un autre langage quelconque mais qui ne tente rien n'a rien :mrgreen:

Petite question peut-être bête mais qui m'intrigue :
Comment donner à une fenêtre quelconque (non AutoIT), la possibilité d'être redimensionné ? Par exemple une fenêtre popup que l'on souhaite redimensionner sois-même (sans devoir utiliser WinMove)

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 16:18
par mikell
C'est pas vraiment clair
Il faudrait que tu postes un code avec une gui et le controle que tu veux "cacher en partie" (en précisant le résultat visuel souhaité)

Pour le redimensionnement tu peux utiliser _WinAPI_SetWindowLong pour imposer le style $WS_SIZEBOX à la fenêtre

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 16:45
par Rancar
Voilà un mini bricolage de ce que je souhaiterais :
De :
► Afficher le texte
Vers :
► Afficher le texte
Pour le redimensionnement, j'ai essayé ceci mais ça ne fonctionne pas :?

Code : Tout sélectionner

#include <Constants.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
_WinAPI_SetWindowLong("Simple Shutdown Timer - By PcWinTech.com",$GWL_STYLE,$WS_SIZEBOX)

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 16:51
par FireFox
Bonjour,
Pour ce logiciel faisable en 3 lignes de code autant le refaire au lieu de se prendre la tête.

Sinon tu déplaces par exemple le combobox à droite du bouton et tu agrandis la fenêtre en longueur.

Cdlt, FireFox.

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 16:56
par Rancar
Je l'ai déjà fais ce logiciel (ICI) mais ici ce n'est qu'un exemple parmi d'autres :)
Pour faire cela sur d'autres fenêtres aussi :)

Et comment agrandir la fenêtre qu'en longueur ? :roll:

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:00
par FireFox
Rancar a écrit : Et comment agrandir la fenêtre qu'en longueur ? :roll:
Soit en utilisant le keyword Default pour les paramètres Left, Top, Height de la fonction WinMove et de mettre ce que tu veux en largeur OU récupérer les valeurs de la fonction WinGetPos et de rajouter de la longueur afin de l'appliquer à WinMove.

Cdlt, FireFox.

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:05
par Rancar
FireFox a écrit :
Rancar a écrit : Et comment agrandir la fenêtre qu'en longueur ? :roll:
Soit en utilisant le keyword Default pour les paramètres Left, Top, Height de la fonction WinMove et de mettre ce que tu veux en largeur OU récupérer les valeurs de la fonction WinGetPos et de rajouter de la longueur afin de l'appliquer à WinMove.

Cdlt, FireFox.
Ah oui merci, j'avais oublié le keyword Default ._.
Merci :D :mrgreen:

EDIT: comment faire pour que le redimensionnement de la fenêtre se fasse de droite à gauche et non l'inverse ? Car WinMove garde toujours la partie de droite et non celle de gauche lors du redimensionnement =/

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:07
par FireFox
Ce que tu rajoutes à droite tu l'enlèves à gauche...

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:10
par Rancar
Comment ça ? ^^

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:14
par FireFox
Ce que tu rajoutes en Width tu l'enlèves en Left (du moins si tu veux que ça reste centré tu retires la moitié en Left).

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:19
par Rancar
Je ne rajoute rien, au contraire, je retire à droite (WinMove) or j'aimerais retirer à gauche (je ne sais pas si c'est compréhensible :S)

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:25
par FireFox
Rancar a écrit :Je ne rajoute rien, au contraire, je retire à droite (WinMove) or j'aimerais retirer à gauche (je ne sais pas si c'est compréhensible :S)
Ah. Ben y'a plus qu'à bouger tous les contrôles (cacher ceux qui ne seront plus visibles et déplacer sur la gauche ceux qui doivent rester visible puis appliquer le WinMove).

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:25
par mikell
[mode "de passage" /ON]
_WinAPI_SetWindowLong() utilise le handle de la fenêtre pas son titre
[mode "de passage" /OFF]

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:27
par Rancar
Je comprends plus rien là :roll:

Comment rétrécir la fenêtre avec WinMove en voulant garder la hauteur (height) et en retirant la partie de gauche. Juste pour garder la partie droite ?

Re: [..] Cacher une partie d'une fenêtre

Posté : dim. 29 sept. 2013 17:30
par FireFox
Rancar a écrit :Je comprends plus rien là :roll:

Comment rétrécir la fenêtre avec WinMove en voulant garder la hauteur (height) et en retirant la partie de gauche. Juste pour garder la partie droite ?
Ce n'est PAS possible, tu dois d'abord faire ce que j'ai indiqué.