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/ActiveX] Controle custom vs tabstop


Sujet :

MFC

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut [MFC/ActiveX] Controle custom vs tabstop
    Bonjour,
    j'ai développé un controle ActiveX utilisant MFC. Celui-ci dérive de COleControl, et remplit grosso modo la fonction d'un bouton. Ce controle possède les propriétés TabStop & TabIndex. Lorsque celui-ci reçoit le focus, j'aimerais dessiner un cadre en pointillé autour du texte. Seulement, je n'arrive pas à capter l'évènement , malgré l'implémentation des fonctions onSetFocus( CWnd* ) et onKillFocus( CWnd* ).

    Tabstop sur un controle CommandButton



    Appui sur la touche Tab, aucun évènement reçu dans onSetFocus() ...



    Comment puis-je récupérer cet évènement et ainsi dessiner le controle en fonction ?

    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,
    c'est bizarre ,tu as bien les messages dans le messagemap ?
    sinon j'ai réalisé un bouton ocx mais je suis parti en héritant de la classe bouton...

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut
    Oui j'ai bien pris garde de déclarer ça dans la message map ... Dans ma méthode onSetFocus, j'ai simplement mis un AfxMessageBox(...), mais j'ai l'impression qu'il se déclenche un peu bizarrement ... Help !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    BEGIN_MESSAGE_MAP(CRQFlatButtonCtrl, COleControl)
    	ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
    ...
    	ON_WM_SETFOCUS()
    	ON_WM_KILLFOCUS()
    	ON_WM_KEYDOWN()
    END_MESSAGE_MAP()

  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 le messagebox pour ce genre de chose c'est pas terrible ..
    il vaut mieux mettre un TRACE("\n OnSetFocus").
    d'enregistrer ton activex en DEBUG et faire l'essai dans ton programme
    et de regarder si tu vois passer les notifications....

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut
    Merci pour le tip !
    Comment enregistre-t-on un activeX en debug ? Je précise que je teste mes composants dans VB6.

  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
    hé bien tu compiles et link le composant en debug a la fin de l'etape il doit l'enregistrer.
    attention si il est ouvert quelque part ça echouera ...
    il faudra tester dans un projet vc/MFC bidon pour voir les traces debug ...



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

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Par défaut
    Ok merci pour les infos en "live".
    J'ai résolu le problème : un bon vieux "clean all" sur le projet, un Invalidate() dans le SetFocus()/KillFocus() et ça marche !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/04/2012, 23h45
  2. mfc activex control
    Par pelito dans le forum MFC
    Réponses: 1
    Dernier message: 24/04/2012, 22h32
  3. Réponses: 9
    Dernier message: 15/07/2006, 12h18
  4. Réponses: 7
    Dernier message: 05/08/2004, 14h55

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