Modification dynamique de la taille d'un groupbox

Résolu
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007 - 30 mars 2006 à 18:18
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre 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 !

20 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 mars 2006 à 10:29
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++
3
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
30 mars 2006 à 18:25
MoveWindow(...);
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
30 mars 2006 à 18:42
Ok, c'est ce que j'utilise mais l'ancien groupbox reste affiché ! comprend pas pourquoi... Pourtant de demande bien de redessiner la fenetre...
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
30 mars 2006 à 18:51
Ben faut croire que tu t'y prend mal ;)
Pose ton bout de code ;)

if(!Meilleur("Joky")) return ERREUR;<
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
30 mars 2006 à 18:56
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 !
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
30 mars 2006 à 18:59
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 !
0
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
30 mars 2006 à 21:39
Avec UpdateWindow() ?

http://vbaddons.free.fr
MSN : x_men_40(
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
30 mars 2006 à 21:46
Hello !

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

Merci du coup de main !
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
30 mars 2006 à 21:50
Explique ce que tu veux faire...
Et pour redessiné, c'est InvalidateRect non ?

if(!Meilleur("Joky")) return ERREUR;<
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
30 mars 2006 à 22:25
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...
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
30 mars 2006 à 22:32
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;<
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
30 mars 2006 à 22:32
Et si tu veux en plein mouvement, il faut utiliser WM_SIZING:

if(!Meilleur("Joky")) return ERREUR;<
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
30 mars 2006 à 22:49
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 !
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
30 mars 2006 à 22:58
Ben si hGroupBox est bien le HANDLE du groupbox et hWnd celui de la fenêtre oui lol

if(!Meilleur("Joky")) return ERREUR;<
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 mars 2006 à 00:16
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++
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
31 mars 2006 à 00:22
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;<
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
31 mars 2006 à 09:03
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..
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
31 mars 2006 à 10:08
Désolé d'insister mais personne n'aurais une petite idée??
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
31 mars 2006 à 11:04
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 !
0
gdpasmini Messages postés 80 Date d'inscription vendredi 4 février 2005 Statut Membre Dernière intervention 30 mars 2007
31 mars 2006 à 11:13
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 !
0
Rejoignez-nous