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 :

CList Control dans nouvelle fenêtre


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut CList Control dans nouvelle fenêtre
    Bonjour à tous,

    J'ai une fenêtre qui en appelle une autre avec Do.modal
    Dans cette nouvelle fenêtre j'ai une CList Control qui devrait afficher un tableau avec des données.

    Je sais comment insérer des colonnes mais je n'arrive pas à le faire au bon moment, c'est à dire quand la 2eme fenêtre s'ouvre.

    J'ai vu Comment initialiser et remplir une CListCtrl ? dans le FAQ mais quand j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void CFenetre2Dlg::OnInitialUpdate()
    il me dit que CFenetre2Dlg n'a pas de membre "OnInitialUpdate".

    J'ai appris sur le tas donc il doit me manque des notions sur les fenêtres et quand je regarde les tutos je comprend pas tout :/

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Salut !

    Montre nous un peu plus de ton code, car j'ai oublié ma boule de cristal chez moi aujourd'hui

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    Alors je comprend pas tout mais voilà ce qu'il y a dans mon .cpp :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    class CFenetre2Dlg : public CDialogEx
    {
    public:
    	CFenetre2Dlg ();
    // Données de boîte de dialogue
    	enum { IDD = IDD_DIALOG2 };
     
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // Prise en charge de DDX/DDV
     
    // Implémentation
    protected:
    	DECLARE_MESSAGE_MAP()
    public:
            void OnInitialUpdate();
    	CListCtrl Tableau;
    };
     
    CFenetre2Dlg ::CFenetre2Dlg () : CDialogEx(CFenetre2Dlg ::IDD)
    {
    }
     
    void CFenetre2Dlg ::DoDataExchange(CDataExchange* pDX)
    {
    	CDialogEx::DoDataExchange(pDX);
    	DDX_Control(pDX, LC_Tableau, Tableau);
    }
     
    BEGIN_MESSAGE_MAP(CFenetre2Dlg , CDialogEx)
    END_MESSAGE_MAP()
     
    ...
     
    void CFenetre2Dlg ::OnInitialUpdate()
    {
    	Tableau.InsertColumn(1,L"Name",LVCFMT_LEFT,70);
    }
    J'ai rajouté void OnInitialUpdate(); dans public du coup il me reconnait OnInitialUpdate mais quand je compile et que j'appelle ma fenetre ben la colonne n'est pas créée

  4. #4
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    OnInitialUpdate est une méthode de CView et non de CDialogEx ... voilà ton soucis.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    En fait j'utilise OnInitialUpdate car j'ai vu fairscape faire ça dans un FAQ mais si je peux utiliser autre chose pour qu'il me crée un colonne quand la fenetre s'ouvre ça ne me dérange pas.

    Pour le CDialogEx j'utilise cette méthode car je me suis calqué sur le code déjà présent avec la AboutBox.

    Est-ce qu'il exite un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void CFenetre2Dlg::QuandLaFenetreS'ouvre()

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    OnInitDialog() qui comme son nom l'indique est appelée à l'initialisation du dialogue
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    Mais pourtant quand je compile la colonne ne se crée pas à l'appartition de la fenetre. Comprend pas

  8. #8
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Je ne suis pas bien sûr de comprendre ce que tu veux dire si ce n'est que ça ne marche toujours pas.

    Comment envisages-tu de définir la taille des objets graphiques sur ta fenêtre ? dynamiquement avec une méthode de redimensionnement appelé à l'initialisation et dans ton OnSize ? ou statiquement à l'aide seulement de l'éditeur de ressources graphiques ?

    Dans les 2 cas assure toi bien que tes éléments sont affichables ! Aussi bien du côté de leur taille que du côté des styles que tu leurs appliques.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    En fait ce ne sont pas des objets graphiques mais juste un tableau de string avec à chaque ligne une case que l'on peut cocher.

    La taille de se tableau sera fixe et est calculé dans la 1ere fenetre, il faudra que je passe passe ces données à la 2eme fenetre ( variable globale je pense c'est le plus simple pour moi).

    Tout se que je veux c'est un tableau avec des colonnes dans ma 2eme fenetre qui s'affiche à l'ouverture de ma 2eme fenetre (ne pas avoir à cliquer quelque part) et la pour le moment j'ai un tableau sans colonne.

  10. #10
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Citation Envoyé par Kermichou Voir le message
    En fait ce ne sont pas des objets graphiques mais juste un tableau de string avec à chaque ligne une case que l'on peut cocher.
    Ton objet graphique permettant l'affichage de la liste à pour IDC LC_Tableau dans l'exemple que tu as donné ...
    Et puis si tu n'as pas d'objet graphique je ne vois pas comment tu pourrais afficher quoi que ce soit ...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    En fait c'est moi qui ai mal compris j'ai appris sur le tas et y a des termes que je ne connais pas :/ je progresse surtout trouvant des bouts de code et en essayant de les adapter mais là je ne trouve pas ce que je veux.

  12. #12
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Le mieux que tu puisses faire et au moins de jeter un œil à un tuto sur les CDialog pour au moins savoir un minimum ce que tu peux faire.
    En effet ce que tu veux faire n'est pas très clair car tu ne maîtrises pas les bases de la programmation MFC ...

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    Voilà mon problème est réglé, solution :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    class Cfenetre2DLG: public CDialogEx
    {
    public:
    	Cfenetre2DLG();
     
    // Données de boîte de dialogue
    	enum { IDD = IDD_DIALOG2 };
     
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // Prise en charge de DDX/DDV
            virtual BOOL OnInitDialog();
     
    // Implémentation
    protected:
    	DECLARE_MESSAGE_MAP()
    public:
    	afx_msg void OnBnClickedOk();
            CListCtrl Liste;
    };
     
    Cfenetre2DLG::Cfenetre2DLG() : CDialogEx(Cfenetre2DLG::IDD)
    {
    }
     
    void Cfenetre2DLG::DoDataExchange(CDataExchange* pDX)
    {
    	CDialogEx::DoDataExchange(pDX);
    }
     
    BEGIN_MESSAGE_MAP(Cfenetre2DLG, CDialogEx)
    	ON_BN_CLICKED(IDOK, &Cfenetre2DLG::OnBnClickedOk)
    END_MESSAGE_MAP()
     
    ...
     
    BOOL CSurgeryDlg::OnInitDialog()
    {
    	CDialogEx::OnInitDialog();
    	Liste.InsertColumn(1,L"Name",LVCFMT_LEFT,100);
     
    	return TRUE;
    }
    Me reste plus qu'à savoir comment remplir les lignes mais ça je devrais y arriver

  14. #14
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Kermichou Voir le message
    Me reste plus qu'à savoir comment remplir les lignes mais ça je devrais y arriver
    CListCtrl::InsertItem
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 133
    Par défaut
    J'ai fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Liste.SetItemText(2, 1, L"Test");
    mais rien ne s'affiche :/

    mais en suivant l'exemple de ton lien ça marche !!!! je vais regarder pourquoi.

    Merci

    Je n'ai pas encore les bon réflexes

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

Discussions similaires

  1. Ouverture dans nouvelle fenêtre
    Par malabarbe dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/08/2009, 18h11
  2. Réponses: 0
    Dernier message: 30/06/2009, 09h47
  3. Comment ouvrir Editor dans nouvelle fenêtre?
    Par titchagui dans le forum Eclipse Platform
    Réponses: 4
    Dernier message: 15/03/2007, 14h34
  4. Perte de session dans nouvelle fenêtre?
    Par ryan dans le forum ASP
    Réponses: 2
    Dernier message: 23/04/2006, 21h06
  5. Struts / HTML / Action dans nouvelle fenêtre
    Par javaSudOuest dans le forum Struts 1
    Réponses: 1
    Dernier message: 03/04/2006, 11h55

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