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 :

Création d'un custom control


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut Création d'un custom control
    Bonjour,

    J'essaie de creer un custom control composé lui même de 2 autres custom control.
    J'utilise RegisterClass dans le constructeur de mon control.
    Mon control est utilisé dans une CDialog (il est déclaré comme un custom control
    dans l'éditeur de ressources avec comme nom de classe, le nom que j'utilise pour le RegisterClass).
    Je veux maintenant créer dynamiquement les deux sous contrôles mais je ne sais pas dans quelle fonction le faire : j'ai essayé de surcharger Create, CreateEx, OnCreate ... mais aucune de ces fonctions n'est appelée par le framework.

    Comment faire ?

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Oui il faut utiliser CreateEx.
    Un controle basiquement possède une classe de fenêtre avec un HWND donc il faut effectivement appeler RegisterClass.
    Si tu peux le trouver je conseille le Petzold qui traite l'essentiel de la programmation Windows.
    Sinon tu peux faire hériter ton Custom Control sur CObjet ou Cwnd

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut
    Je n'ai pas été très clair dans mon explication ...

    Je veux faire un custom control A contenant 2 autres custom controls B et C (existants).
    Pour le créer à la main, j'ai fait une méthode create (en lui passant les paramètres habitules) qui appelle CWnd::Create puis les méthodes Create de B et C => jusque là, ça baigne.

    Tout se complique si je veux créer mon custom control A dans une boite de dialogue et que j'utilise l'éditeur de ressources en liant une variable membre de mon dialogue à mon control A via DDX_Control. En suivant le code, je me suis aperçu qu'une fenêtre était créée indépendamment de mon contrôle puis liée à mon contrôle lors de l'appel à DDX_Control (par la méthode SubclassWindow). Du coup, mes deux custom controls B et C ne sont pas créés et je n'ai pas trouvé dans la doc du framework la méthode virtuelle de CWnd appelée automatiquement par le framework (genre OnAttach ... mais ça n'existe pas) que je pourrais surcharger (pour créer B et C).

    Quelqu'un à une idée pour résoudre ce problème ?

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut
    Personne n'a une idée ?

  5. #5
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    salut,

    tu surcharges la fonction 'PreSubclassWindow()' et tu fais tes Create() à l'intérieur.

    @+

  6. #6
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 16
    Par défaut
    Argh !!!
    Je ne l'avais pas vue cette "PreSubclassWindow".
    C'est bien sur ce qu'il me fallait...
    Merci beaucoup.

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

Discussions similaires

  1. [MFC] Création d'un 'custom control'
    Par r0d dans le forum MFC
    Réponses: 5
    Dernier message: 03/02/2006, 10h23
  2. [C#] custom control à partir d'une image / alpha blending
    Par Cyberwan dans le forum Windows Forms
    Réponses: 5
    Dernier message: 13/11/2005, 21h59
  3. Insertion d'un Custom Control: CMyListBox
    Par Neo41 dans le forum MFC
    Réponses: 6
    Dernier message: 21/06/2005, 15h26
  4. [C#] Custom Control : Recuperer valeur formulaire
    Par victorbru dans le forum ASP.NET
    Réponses: 22
    Dernier message: 21/04/2005, 09h02
  5. [C#] Custom Control et message de confirmation
    Par lancelot69 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/12/2004, 15h04

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