Modification dynamique de la taille d'un groupbox [Résolu]

Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
- - Dernière réponse : gdpasmini
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
- 31 mars 2006 à 11:13
Salut !

J'ai encore une petite question !

Comment peut on modifier dynamiquement la taille d'un groupbox ? Je suppose qu'il y a une fonction a appeler lorsque le signal WM_SIZE est émis mais je vois pas laquelle !

Merci d'avance !
Afficher la suite 

Votre réponse

20 réponses

Meilleure réponse
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
34
3
Merci
http://bnmvp.free.fr/bnSize.zip

J'ai idée qu'il ne m'a fallu que 2 mn et que ça marche.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 86 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BruNews
Messages postés
252
Date d'inscription
vendredi 10 juin 2005
Dernière intervention
5 septembre 2006
0
Merci
MoveWindow(...);
Commenter la réponse de Zootella
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
Ok, c'est ce que j'utilise mais l'ancien groupbox reste affiché ! comprend pas pourquoi... Pourtant de demande bien de redessiner la fenetre...
Commenter la réponse de gdpasmini
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
31 janvier 2009
3
0
Merci
Ben faut croire que tu t'y prend mal ;)
Pose ton bout de code ;)

if(!Meilleur("Joky")) return ERREUR;<
Commenter la réponse de cs_Joky
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
Oui je suppose que le probleme vient de mon code et non d'une quelconque présence fantoplasmique! mais ca me laisse qd meme ss voix !

case WM_SIZE:


GetWindowInfo(hwnd, pwi);


taille_fenetre_principale.hauteur = pwi->rcWindow.bottom - pwi->rcWindow.top;


taille_fenetre_principale.largeur = pwi->rcWindow.right - pwi->rcWindow.left;


MoveWindow(hwnd, pwi->rcWindow.left, pwi->rcWindow.top, taille_fenetre_principale.largeur, taille_fenetre_principale.hauteur, TRUE);



Merci du coup de main !
Commenter la réponse de gdpasmini
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
Désolé, faut que j'y aille, j'ai pas vu l'heure defilé et je vais etre bloqué au boulot ! ca serait ballot! lol

Merci encore pour ton aide !
Commenter la réponse de gdpasmini
Messages postés
1496
Date d'inscription
dimanche 19 novembre 2000
Dernière intervention
7 juillet 2014
0
Merci
Avec UpdateWindow() ?

http://vbaddons.free.fr
MSN : x_men_40(
Commenter la réponse de cs_max12
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
Hello !

J'y avais pensé mais je le mets ou le updateWindow? apres le moveWindow?

Merci du coup de main !
Commenter la réponse de gdpasmini
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
31 janvier 2009
3
0
Merci
Explique ce que tu veux faire...
Et pour redessiné, c'est InvalidateRect non ?

if(!Meilleur("Joky")) return ERREUR;<
Commenter la réponse de cs_Joky
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
non, en fait, je veux juste que mon groupBox s'agrandisse en meme temps que ma fenetre... Le truc c'est qu'au lieu de simpleemnt changer de taille, il se dédouble. Le premier garde l'ancienne taille et le nouveau prend la nouvelle taille...
Commenter la réponse de gdpasmini
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
31 janvier 2009
3
0
Merci
case WM_SIZE:
GetClientRect(hWnd, &Rc);
MoveWindow(hGroupBox, Rc.left, Rc.top, Rc.rigt, Rc.bottom, TRUE);
InvalidateRect(hWnd, NULL, FALSE);
return 0;

if(!Meilleur("Joky")) return ERREUR;<
Commenter la réponse de cs_Joky
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
31 janvier 2009
3
0
Merci
Et si tu veux en plein mouvement, il faut utiliser WM_SIZING:

if(!Meilleur("Joky")) return ERREUR;<
Commenter la réponse de cs_Joky
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
Et ce code permet de modifier aussi la taille du groupBox ? Je vais tester tout ca demain.

Merci encore pour ton aide ! Je te tiens au courant du resultat !

Merci encore !
Commenter la réponse de gdpasmini
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
31 janvier 2009
3
0
Merci
Ben si hGroupBox est bien le HANDLE du groupbox et hWnd celui de la fenêtre oui lol

if(!Meilleur("Joky")) return ERREUR;<
Commenter la réponse de cs_Joky
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
34
0
Merci
quand WM_SIZE le GetClientRect est inutile, la taille de la zone client est dans lParam de la WindProc.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Commenter la réponse de BruNews
Messages postés
1791
Date d'inscription
lundi 22 novembre 2004
Dernière intervention
31 janvier 2009
3
0
Merci
C'est vrai, j'ai pas assez retenu petzold :D
Donc récupère taille et hauteur avec LOWORD et HIWORD ;)
if(!Meilleur("Joky")) return ERREUR;<
Commenter la réponse de cs_Joky
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
resalut !

Y a pas vraiment de changement.. Tout ceci ne fait que dédoubler le groupbox et non le redimensionner... Le nouveau groupbox créé a la bonne taille.

Il ne faut pas detruire l'ancien groupbox avant de faire un moveWindow par hasard ??

Voila cmt je crée mon group box :

case WM_CREATE :


hGroupBoxInfo = CreateWindow(
"button",
"informations", WS_CHILD | WS_VISIBLE | BS_GROUPBOX , 10, 10, 0.5*taille_fenetre_principale.largeur, 350, hwnd, 0, hinst, NULL);

Comprend pas..
Commenter la réponse de gdpasmini
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
Désolé d'insister mais personne n'aurais une petite idée??
Commenter la réponse de gdpasmini
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
Ok merci beaucoup pour ton aide. Ca fonctionne effectiveemnt ! le probleme c'est que moi j'ai une fenetre principale que je n'ai ps créée avec des ressources..

Pour le moveWindow, je l'utilise aussi mais rien ne bouge.. j'ai meme repris t paramètres mais rein ne se passe.. Je comprends que cette question semble stupide mais c'est la premiere fois que je fais une IHM alors c'est un peu galere !
Commenter la réponse de gdpasmini
Messages postés
80
Date d'inscription
vendredi 4 février 2005
Dernière intervention
30 mars 2007
0
Merci
C'est bon, j'ai trouvé le probleme... En fait, j'avais déclaré le handle du groupbox ds le winproc et non en global ! c t tout con...

Merci bcp a vous ! C'est vraiment sympa de se penché sur nos problemes ! Car la prog ca peut vite devenir galere !
Commenter la réponse de gdpasmini

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.