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][Debutant] Une classe perso de CEdit


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Par défaut [MFC][Debutant] Une classe perso de CEdit
    Bonjour,
    Je débute avec les MFC et j'aimerai avoir des conseils. L'interface doit presenter une fenetre contenant les composants directement. Du coup j'ai opté pour une appli Dialog-based.
    J'ai mis mes 3 composants, 2 cedit (qui communiquent au final) et un bouton.

    Maintenant j'aimerai pouvoir detecter le focus sur un des champs CEdit, et reagir si la touche entrer est appuyée (par defaut ca ferme la fenetre)

    Bref apres lecture de la FAQ j'ai cru comprendre que faire une classe dérivée serai la bonne solution. Mais comment savoir si la classe ainsi créé est appliquée au composant? (j'ai du louper des trucs je sais )

    J'ai essayé des trucs sans reussite (cad je fais des TRACE("Focus") dans les methodes de reception des evennements et rien ne s'affiche en mode debug)

    Du coup je m'en retourne vers vous, si vous pouviez m'aider, me donner des conseils voir meme me faire un exemple simple ce serai super.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Par défaut
    En fait je n'avais pas vu, mais il y a un pdf qui répond à ma question dans la FAQ.

    Bref j'ai reussi à appliquer ma classe perso au composant. Maintenant j'aimerai pouvir réagir differement selon les composants! c'est à dire, que les 2 composants que j'ai sur ma scene ne doivent pas réagir de la meme façon a la reception d'un evennement. Je ne sais pas comment savoir quel composant recoit le'evennement (comment retrouver son IDC_ )

    Dans ce cas il vaut mieux faire une autre classe si le scomportement ssont differents. C'est ce que je vais faire, mais s'il y avait moyen de le faire, je suis intéréssé (juste pour apprendre)

    ++

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    hmm pas sûr d'avoir tout compris, mais c'est peut-être ça que tu cherches
    http://www.developpez.net/forums/vie...004892#2004892

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Par défaut
    Oui désolé j'ai aussi l'impression de ne pas avoir été très clair

    COmme je ne pense pas que ton lien soit la solution, je reformule mon probleme.

    J'ai actuellement 2 composants sur ma fenetre de dialogue (projet dialog-based).
    J'ai une classe CMyEdit qui etend que CEdit, et mes 2 composants utilisent cette classe.

    Cette classe CMyEdit, fait reception d'une activité clavier. Maintenant j'aimerai réagir différement selon les composants ! Il faudrai donc , i lme semble, que je recupere l'ID du composant sur lequel s'est produit l'evennement, tester avec un swtich case (par ex) et voila.

    Seulement je ne suis pas sur que ce genre de chose soit cohérente, ni possible.

    Cela etait t'il plus clair?
    ++

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Citation Envoyé par kiroukou
    Cela etait t'il plus clair? ++
    yes

    - soit intercepter le message par la classe ayant comme membre les edit et gérer en fonction du composant

    - soit avoir 2 classes, chacune implémentant sont comportement spécifique

    - soit avoir 1 classe, ajouter un membre int m_iType à ta classe (avec éventuellement une valeur par défaut à la construction), et la méthode GetType(int iType). dans le gestionnaire de l'événement tu fais un switch sur m_iType pour savoir quel comportement adopter.

  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 kiroukou
    En fait je n'avais pas vu, mais il y a un pdf qui répond à ma question dans la FAQ.

    Bref j'ai reussi à appliquer ma classe perso au composant. Maintenant j'aimerai pouvir réagir differement selon les composants! c'est à dire, que les 2 composants que j'ai sur ma scene ne doivent pas réagir de la meme façon a la reception d'un evennement. Je ne sais pas comment savoir quel composant recoit le'evennement (comment retrouver son IDC_ )

    Dans ce cas il vaut mieux faire une autre classe si le scomportement ssont differents. C'est ce que je vais faire, mais s'il y avait moyen de le faire, je suis intéréssé (juste pour apprendre)

    ++
    je pense que l'heritage est la solution la plus naturel au probleme.
    ou alors le comportement du composant doit etre specifié par des fonctions de type SetMyOption(..


  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 115
    Par défaut
    Merci beacoup à vous deux

    Juste une dernière petite question :
    - soit intercepter le message par la classe ayant comme membre les edit et gérer en fonction du composant
    Ok. Mais si la classe gérant les edit réagit au clavier (dans mon cas) ET que mes CEdit persos reagissent au clavier aussi, quel traitement va etre effectué en premier? Celui des CEdit ou du Conteneur?
    En tout cas si j'ai bien compris, avec cette solution il faudrai que mes CEdit persos ne reagissent pas au clavier, vu que c'est le conteneur qui s'en occupe.

    Désolé de ces questions bizarres, mais je ne comprend pas totallement la logique avec les MFC...

    Merci

Discussions similaires

  1. [MFC]creer une classe derivé de CWinThread
    Par psyjess dans le forum MFC
    Réponses: 2
    Dernier message: 18/03/2005, 14h23
  2. [MFC] surcharger une classe
    Par exter666 dans le forum MFC
    Réponses: 9
    Dernier message: 16/03/2005, 00h53
  3. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 11h30
  4. [Debutant] Une classe abstraite en parametre ?
    Par kiroukou dans le forum Débuter
    Réponses: 8
    Dernier message: 03/02/2005, 15h05
  5. [ JSP ] [ Tomcat ] importer une classe perso
    Par captainpouet dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 11/03/2004, 11h30

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