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 une CListCtrl contenue dans un Ctabctrl


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Par défaut Redimensionner une CListCtrl contenue dans un Ctabctrl
    Bonjour,

    J'ai un projet MFC de type DialogBox
    J'aimerais changer la taille de ma CListCtrl au redimenssionnement de la boite de dialogue principale de mon projet (CCod4_1Dlg).

    Je me appuyé sur l'aide http://cpp.developpez.com/faq/vc/?pa...ListCtrlResize

    et donc voici ce 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
     
    void CCod4_1Dlg::OnSize(UINT nType, int cx, int cy) 
    {
    	CDialog::OnSize(nType, cx, cy);
     
    	// TODO: Add your message handler code here
    	// On modifie la taille de la Clistctrl
     
    	// la taille de la fenetre.
    	CRect m_RectInitialWindow, m_RectInitialCtrl;
    	GetClientRect(m_RectInitialWindow);
    	m_tbCtrl.SetWindowPos(NULL,0,0,m_RectInitialWindow.Width()-20,m_RectInitialWindow.Height()-20,SWP_NOMOVE | SWP_NOZORDER); // uniquement la taille
    	// la taille du controle
    	m_tbCtrl.GetClientRect(m_RectInitialCtrl);
    }
    Donc là je redimenssionne mon ctabctrl.
    Déjà au redimensionnement il y a un problème de rafraichissement: quand mon ctabctrl s'agrandit, les parties nouvelles sont en blanc il faut que je clique sur un onglet et revienne sur l'autre pour que ca soit actualisé.
    Donc ma première question c'est comment réglé ca deja car je n'arrive pas a rafraichir

    Sinon, J'ai une classe Tab2 correspondant au deuxième onglet de mon Ctabctrl. Cette classe comporte la variable m_list pour désigner la CListCtrl.
    Comment et où puis-je modifier ses dimensions quand je redimensionne ma fenetre principale ?

    Merci

  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,
    j'ai bricolé un projet que j'avais déjà exposé sur le ctabctrl avec une classe améliorée.
    j'ai rajouté la gestion du resize issue de la faq:
    http://cpp.developpez.com/faq/vc/ind...#LayoutControl

    le projet:
    http://farscape.developpez.com/Samples/CxTabCtrl.zip

    il est possible de se passer des templates en utilisant un héritage multiple.
    [note a part]
    je dis ça a cause de vc2005, qui à partir du moment ou une classe template est utilisée sur une Form ou Dialog ne reconnait plus la classe comme une fenêtre et empêche l'association d'une variable à un contrôle dans l'interface.
    j'ai signalé ce problème qui n'a pas été jugé important par l'equipe de dev de MS et donc ne sera pas résolu.
    moi je trouve ça ennuyeux et une vraie régression obligeant a requérir à l'héritage multiple (merci les gars).
    [/note a part]
    ceci fonctionnant correctement sous vc6.0.
    pour les composants des onglets qui doivent s'étendre il faudra appliquer la classe template sur les dialogues des onglets et spécifié le mode de resize..
    dans mon exemple j'ai mis une CListBox dans le deuxième onglet.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Par défaut
    Merci je vais étudier ça, car ça a l'air hardu

    Pour info je suis sous VC6 SP6

    Par contre au moment de la compilation j'ai une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabctrlDlg.cpp(83) : error C2248: 'messageMap' : cannot access protected member declared in class 'CDialog'

  4. #4
    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,
    bizarre ça compile sans problèmes sous vc2005.
    remplace protected par public dans le .h au dessus de DECLARE_MESSAGE_MAP()

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Par défaut
    le .h de quel fichier ?
    j'ai testé sur tabctrlDlg.h et afxwin.h sans succes :/

  6. #6
    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
    Citation Envoyé par lOeil Voir le message
    le .h de quel fichier ?
    j'ai testé sur tabctrlDlg.h et afxwin.h sans succes :/
    houla ,il ne faut surtout pas toucher a afxwin.h ...
    a priori ça serait plutôt "tabctrlDlg.h", mais je ne comprends pas que tu ais un problème ce projet fonctionnait initialement sous vc6 sans problème.
    je ferais un essai lundi au bureau avec vc6, la je ne dispose que de visual 2005.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Par défaut
    ok ba tiens mois au courant

  8. #8
    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
    le projet est corrigé pour vc6.0

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 57
    Par défaut
    Ca marche maintenant, je te remerci

    Par contre je ne met pas le topic en résolu vu que je ne suis pas sur a 100% de ne pas avoir de questions sur celui-ci :p

Discussions similaires

  1. Comment afficher une valeur contenue dans une variable ?
    Par manubrard dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 15h56
  2. [JAR] Accéder à une resource contenue dans un jar
    Par Blo0d4x3 dans le forum Général Java
    Réponses: 4
    Dernier message: 17/02/2006, 08h29
  3. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 18h46
  4. Réponses: 6
    Dernier message: 29/07/2005, 11h12
  5. [JAR] instancier une Image contenue dans un jar
    Par celine31 dans le forum Général Java
    Réponses: 3
    Dernier message: 03/04/2005, 15h55

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