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 :

Insérer un TABLEAU dans un CDialog


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut Insérer un TABLEAU dans un CDialog
    Bonjour à tous.

    Je suis débutant en Visual C++, et j'aurai besoin dans un CDialog, d'afficher un tableau avec C colonnes et L lignes. (Un tableau qui aurait l'allure d'un fichier excel), ou je pourrai entrer des valeurs, les modifier, etc... Existe t il un composant déjà tout fait ? Je connais très mal l'environnement Visual C++ 6.0.

    Merci de votre aide.

    YoungKoolBoy

  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,
    mais il y a grid qui permet ça .
    voir ce post ou le lien est designé :
    http://www.developpez.net/forums/sho...148527#1495854


  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Merci FarScape, mais où puis-je trouver le custom control CGridCtrl ? Dans la boite a outils j'ai des List Box, Combo Box, Edit Box, etc, mais pas de Grid...

    Je suis Novice, désolé...

  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
    bon je te mets le lien du composant en clair ...
    http://www.codeproject.com/miscctrl/gridctrl.asp


  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Merci beaucoup, j'avais trouvé. Mais je pensais qu'il existait un composant tout fait par Visual... C'est quand même terrible qu'ils n'aient pas pensé à ça chez microsoft...

    Je vais essayer de me débrouiller avec ce lien et le code fourni !

    YoungKoolBoy

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Ah la la, je suis mauvais je crois....

    Bon, j'ai insérer à mon projet le code source des CgridCtrl, et tout compile très très bien.

    Cependant, quand j'exécute mon programme, la fenetre de dialogue s'ouvre normalement et repond normalement(sur F5). Mais dès que j'ajoute un custom control, quand je fais F5, la fenetre de dialoque ne s'ouvre plus et j'ai directement le message de fin d'exécution comme si j'avais quitté mon programme, c'est à dire :

    The thread 0x4EC has exited with code 0 (0x0).
    The program 'C:\Documents and Settings\MainUser\Bureau\Editeur_BdD\Debug\Editeur_BdD.exe' has exited with code 0 (0x0).

    Et ce que j'associe ou pas au custom control la classe CGridCtrl

    Comment cela se fait-il???

    Encore merci...

  7. #7
    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
    regarde bien l'exemple fournit:
    le lien se fait dans la fonction dodataexchange:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DDX_GridControl(pDX, IDC_GRID, m_Grid);

  8. #8
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Euh, merci... Mais mon problème n'est pas celui là.

    J'ai ma boîte de dialogue, et dès que j'y mets un composant "Custom Control" meme sans rien associer comme classe à ce control, la fenêtre de dialogue ne s'ouvre plus, le programme se termine avant d'avoir commencé... Je sais je suis nul...

  9. #9
    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
    ben si justement ton custom control doit avoir comme identifiant IDC_GRID( pour mon exemple)
    tu dois avoir une variable m_Grid de la classe CGridCtrl dans ta classe.
    et surtout tu dois rajouter manuellement dans la fonction dodataexchange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DDX_GridControl(pDX, IDC_GRID, m_Grid);
    c'est cette ligne qui va initialiser le custom control....
    n'oubli pas d'affecter les bonnes proprietes au custom control comme indiqué dans la doc.
    le plus simple etant de recopier le custom control de l'exemple dans ton projet.
    (il suffit d'ouvrir le fichier .rc de l'exemple et de faire un copier /coller du contrôle).

  10. #10
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Merci beaucoup, ça marche maintenant!

    Tu es de très bon conseil!

    Encore mille fois merci!

  11. #11
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    oublie pas de mettre le tag résolu

  12. #12
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Euh, j'ai parlé un peu trop vite...

    En faisant un copier/coller du custom control, je ne recupere pas toutes les procedures d'initialisation. On le fait comment ce copier/coller ?
    Car moi y'a juste une fenetre grise qui apparait, sans rien dedans...

    Ah la la, je suis pas en forme today...

  13. #13
    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
    heu ,le custom il est vide,
    les initialisations sont faites a partir du contrôle qui dessine le grid voir l'exemple ...

  14. #14
    mat.M
    Invité(e)
    Par défaut
    La grille de CodeProject est bien mais peut-être complexe.
    Tu peux utiliser aussi Mshflexgrid.ocx , un OCX ;
    Pour cela dans l'onglet resources sélectionner "Add registered component" et choisir mshflexgrid.ocx

    Sauvegarder impérativement le projet avant de faire la manip ou bien faire un projet test à part

  15. #15
    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 mat.M
    La grille de CodeProject est bien mais peut-être complexe.
    tu m'excuses mais la je ne suis pas d'accord ,dire que ce composant est compliqué faut pas pousser,
    que tu me dise que le ultimate grid est complexe d'accord mais pas celui la !

  16. #16
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par farscape
    tu m'excuses mais la je ne suis pas d'accord ,dire que ce composant est compliqué faut pas pousser,
    que tu me dise que le ultimate grid est complexe d'accord mais pas celui la !
    Aie aie qu'est ce que j'ai pas dit ça y est on laché les chiens méchants

    Bon ok celui de Code Project est peut-être simple.
    C'est en décortiquant les sources que j'ai été dérouté ..

  17. #17
    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
    baah un grand garçon comme toi tu m’étonnes la

  18. #18
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 19
    Par défaut
    Merci à vous tous pour votre aide. Cependant je vais plutot utiliser un CListCtrl, sur lequel je sais créer des colonnes, des lignes (donc des cases!!!) et les remplir.

    Cependant j'ai un soucis...

    j'aimerai pouvoir, en cliquant sur l'une des cases, que celle-ci s'ouvre en modification, que je puisse saisir une nouvelle valeur dans cette case et pouvoir, après mise à jour de cette case, obtenir les informations suivantes :

    1 - Ancienne valeur
    2 - Nouvelle valeur affectée au clavier par l'utilisateur
    3 - Numéro de ligne modifiée
    4 - Numéro de colonne modifiée.

    En fait, je remplis cette CListCtrl à partir d'une base de données, et sur modification d'une valeur, récuperer les infos précédentes pour pouvoir mettre à jour ma base de données.

    Merci à vous tous pour l'aide que vous pourriez m'apporter...

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

Discussions similaires

  1. Comment insérer une image dans une CDialog?
    Par vonemya dans le forum MFC
    Réponses: 2
    Dernier message: 01/08/2007, 11h14
  2. Créer un tableau dans une CDialog
    Par Sachiel31 dans le forum MFC
    Réponses: 5
    Dernier message: 29/08/2006, 16h55
  3. Réponses: 2
    Dernier message: 02/06/2006, 09h04
  4. insérer un tableau dans un champs MySQL
    Par jbaudin dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/03/2006, 09h08
  5. insérer un tableau dans un formulaire ACCESS
    Par julie76 dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2005, 18h47

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