IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Redimensionner les controles


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Luffy Duck
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 165
    Par défaut Redimensionner les controles
    Bonjour à tous.

    J'ai récupéré la classe CResizer sur codeguru.com qui permet de redimensionner les controles d'une dialog en fonction de la taille de la fenêtre principale. Mais le problème est que j'ai un TabCtrl avec d'autres dialog dessus afin de créer les onglets. J'arrive à redimensionner le TabCtrl, mais pas les dialog affectées aux onglets.

    Est-ce possible de le faire ? Avec la classe CResizer, ou bien il faut passer par autre chose ?

    Merci de vos réponses.

  2. #2
    Membre confirmé Avatar de Luffy Duck
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 165
    Par défaut
    Bon ok, il suffisait de regarder comment fonctionne CResizer et de l'appliquer aux Dialog... désolé...

    Voici le code que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    void CtreeDlg::OnSize(UINT nType, int cx, int cy)
    {
    	CDialog::OnSize(nType, cx, cy);
     
    	resizer.Move(); //appel de la méthode de CResizer qui redimensionne les controles
    	if (::IsWindow(tab_ctrl.GetSafeHwnd())) //il faut d'abord regarder si le TabCtrl est bien créé
    	{
    		RECT rc;
    		tab_ctrl.GetClientRect(&rc); //on récup la taille du TabCtrl
    		rc.top += 22; //on ajoute 22 pour ne pas cacher les onglets
    		for(int i=0;i<tab_ctrl.GetSSLPageCount();i++)
    		{ //pour chaque page du TabCtrl, on redimensionne la dialog
    			CListeDlg * dlg = (CListeDlg *)tab_ctrl.GetSSLPage(i);
    			dlg->SetWindowPos(NULL, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOCOPYBITS|SWP_NOZORDER);
    		}
    	}
    }
    Voilà

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajuster proportionnellement les controle lorsqu'on redimensionne la fenetre
    Par thoma dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 27/05/2010, 19h53
  2. Colorier les controles d'une DLG
    Par tonycalv dans le forum MFC
    Réponses: 7
    Dernier message: 11/01/2008, 08h48
  3. Réponses: 4
    Dernier message: 05/09/2005, 11h13
  4. [MFC] redimensionner un controle
    Par benahpets dans le forum MFC
    Réponses: 5
    Dernier message: 01/09/2005, 17h06
  5. [MFC] Recuperer tout les control d'un CDialog
    Par mickaelguilbert dans le forum MFC
    Réponses: 6
    Dernier message: 11/08/2005, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo