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 :

[MFC] Redimensionnement CDialogBar


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut [MFC] Redimensionnement CDialogBar
    Bonjour à tous,
    Dans mon application je possède une dialogbar principale qui est dockée par defaut sur le coté gauche (CRBS_ALIGN_LEFT) que je souhaiterais redimensionner.
    Après avoir parcouru la msdn et les forums, j'ai trouvé ce que je voulais pour redimensionner une CDialogBar en créant une classe dérivée :
    http://www.developpez.net/forums/sho...ght=cdialogbar
    et
    http://support.microsoft.com/kb/q143255/
    J'ai ajouté des comportements suivant la taille de la DialogBar mais cela fonctionne que quand la DialogBar est en mode flottante et non en mode dockée.
    Comment faire pour que je puisse redimensionner (augmentation de la largeur) la dialogbar quand elle est dockée ?
    J'ai remarqué que si je la redimensionne quand elle est flottante et que je la redock après, elle garde sa taille.
    Je crée la dialogbar dans le CMainFrame appli SDI
    merci d'avance
    Christophe

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    en redefinissant CalcDynamicLayout ça ne donne rien ? (sans rappeller la fonction de base) .

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut
    Bonjour,
    CalcDynamicLayout est déjà redefini car je peux redimensionner la CDialogBar lorsquelle est flottante, mais lorsquelle est dockée ... impossible
    En plus, si je redimensionne lorsquelle flotte et que je la redocke, la bar garde les même proportions que quand elle était flottante, c'est plutot bizarre.
    Dans la msdn à la fonction CalcDynamicLayout, c'est écrit que quand la bar est dockée, nLength (taille(width ou height) qui change) est à ignorer :s
    http://msdn2.microsoft.com/en-us/lib...DownFilterText

    Je vous poste mon code de ma classe dérivée CMyDialogBarResizable :
    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
    18
    19
    20
    21
    22
    CSize CMyDialogBarResizable::CalcDynamicLayout(int nLength, DWORD dwMode)
       {	   // Return default if it is being docked or floated
           if ((dwMode & LM_VERTDOCK) || (dwMode & LM_HORZDOCK))
           {
               if (dwMode & LM_STRETCH) // if not docked stretch to fit
                   return CSize((dwMode & LM_HORZ) ? 32767 : m_sizeDocked.cx,
                                (dwMode & LM_HORZ) ? m_sizeDocked.cy : 32767);
                 else
                   return m_sizeDocked;
           }
           if (dwMode & LM_MRUWIDTH)
               return m_sizeFloating;
           // In all other cases, accept the dynamic length
           if (dwMode & LM_LENGTHY)
               return CSize(m_sizeFloating.cx, (m_bChangeDockedSize) ?
                            m_sizeFloating.cy = m_sizeDocked.cy = nLength :
                            m_sizeFloating.cy = nLength);
            else
               return CSize((m_bChangeDockedSize) ?
                            m_sizeFloating.cx = m_sizeDocked.cx = nLength :
                            m_sizeFloating.cx = nLength, m_sizeFloating.cy);
       }]
    Ceci est un code trouvé sur la msdn ou un forum qui fonctionne lorsque la barre est flottante mais pas dockée.

    Merci d'avance de votre aide

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/05/2005, 17h43
  2. [MFC] - MDI : CDialogBar resize....
    Par Alice9 dans le forum MFC
    Réponses: 5
    Dernier message: 18/02/2005, 17h12
  3. Réponses: 12
    Dernier message: 15/02/2005, 15h34
  4. [MFC] Redimensionnement de ToolBar
    Par windsurfeur44 dans le forum MFC
    Réponses: 7
    Dernier message: 15/09/2004, 19h43
  5. (MFC) Redimensionner une List Control auto / Boite Dlg
    Par Guybrush113 dans le forum MFC
    Réponses: 7
    Dernier message: 23/04/2004, 09h24

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