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

gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 30 mars 2006 à 18:18 - Dernière réponse : gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention
- 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
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 31 mars 2006 à 10:29
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++

Merci BruNews 3

codes-sources a aidé 82 internautes ce mois-ci

Commenter la réponse de BruNews
Zootella 252 Messages postés vendredi 10 juin 2005Date d'inscription 5 septembre 2006 Dernière intervention - 30 mars 2006 à 18:25
0
Merci
MoveWindow(...);
Commenter la réponse de Zootella
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 30 mars 2006 à 18:42
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
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 30 mars 2006 à 18:51
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
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 30 mars 2006 à 18:56
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
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 30 mars 2006 à 18:59
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
cs_max12 1496 Messages postés dimanche 19 novembre 2000Date d'inscription 7 juillet 2014 Dernière intervention - 30 mars 2006 à 21:39
0
Merci
Avec UpdateWindow() ?

http://vbaddons.free.fr
MSN : x_men_40(
Commenter la réponse de cs_max12
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 30 mars 2006 à 21:46
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
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 30 mars 2006 à 21:50
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
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 30 mars 2006 à 22:25
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
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 30 mars 2006 à 22:32
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
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 30 mars 2006 à 22:32
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
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 30 mars 2006 à 22:49
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
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 30 mars 2006 à 22:58
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
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 31 mars 2006 à 00:16
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
cs_Joky 1791 Messages postés lundi 22 novembre 2004Date d'inscription 31 janvier 2009 Dernière intervention - 31 mars 2006 à 00:22
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
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 31 mars 2006 à 09:03
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
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 31 mars 2006 à 10:08
0
Merci
Désolé d'insister mais personne n'aurais une petite idée??
Commenter la réponse de gdpasmini
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 31 mars 2006 à 11:04
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
gdpasmini 80 Messages postés vendredi 4 février 2005Date d'inscription 30 mars 2007 Dernière intervention - 31 mars 2006 à 11:13
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.