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 :

TabCtrl et Message [FAQ]


Sujet :

MFC

  1. #1
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par d�faut TabCtrl et Message
    Bonjour � tous,

    Je d�veloppe actuellement un projet sous Visual C++. Je vais essayer de vous d�crire mon petit probl�me !


    J'ai une classe MyTabCtrl qui me permet de cr�er mes 2 onglets. Dans cette classe, je fais le lien avec 2 Dialog Box filles : Dialog1 et Dialog2.

    Dans ma classe principale MonTestDlg, j'instancie MyTabCtrl. Voici une extrait de "MonTestDlg.h" :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    MyTabCtrl m_tabCtrl;
    Sur Dialog1, j'ai plusieurs boutons. Je souhaiterai que les messages envoy�s par ces boutons sont intercept�s par la classe MonTestDlg.

    J'esp�re avoir �t� assez clair ! Si ce n'est pas le cas, n'h�sitez pas � me le dire !!!!

  2. #2
    Membre �clair� Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par d�faut
    tu peux intercepter sans probl�me les message a destination de ta class dialogue.

    par exemple dans le cas d'un message user:
    enregistre un message perso :
    static const UINT UWM_RTC_NOINIT= ::RegisterWindowMessage("unestringunique");
    et dans la message map de ta classe dialogue,
    tu peux inserer par exemple un ON_REGISTERED_MESSAGE
    et le mapper avec une fonction de ta classe.

  3. #3
    Membre � l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par d�faut
    Je ne suis pas s�r d'avoit tout compris... (d�butante oblige)

    Je sais intercepter un message de mes Dialog Box en ajoutant les fonctions n�cessaires dans leurs fichiers sources. Par contre je voudrai "faire remonter" ces messages jusqu'� ma classe MonTestDlg pour qu'elle puisse traiter l'information. C'est l� que pour moi r�side la difficlut� ...

  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
    une solution pas trop compliqu�e:
    1)
    tu impl�mentes avec l'assistant le message clic des boutons en question sur les onglets concern�s.
    tu d�places manuellement les fonctions de r�ponse et leurs implementations de la macro message_map de l'onglet vers la boite de dialogue principale.
    comme si les boutons �taient sur la boite de dialogue principale.
    2) sur les onglets contenant les boutons tu mets en place avec l'assistant le message OnCommand et tu fais le traitement suivant:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    BOOL CTabInformation::OnCommand(WPARAM wParam, LPARAM lParam)
    {
        // TODO : ajoutez ici votre code spécialisé et/ou l'appel de la classe de base
        UINT nCode=HIWORD(wParam);        
        UINT nID = LOWORD(wParam);       
        if(nCode==BN_CLICKED && nID==IDC_BUTTON2)
        {
                 m_pTab->GetParent()->PostMessage(WM_COMMAND,wParam,lParam);
        }
     
        return CDialog::OnCommand(wParam, lParam);
    }
    dans mon exemple IDC_BUTTON2 est un bouton situ� sur l'onglet CTabInformation.
    m_pTab est un pointeur sur le tabctrl qui peut etre obtenu par GetParent():
    le parent d'un onglet c'est le tabctrl ,le parent du tabctrl c'est la dialogue principale...

Discussions similaires

  1. R�ponses: 1
    Dernier message: 12/12/2005, 18h29
  2. Message 'Duplicate index entry'
    Par Poulou dans le forum Administration
    R�ponses: 13
    Dernier message: 04/05/2004, 14h57
  3. R�ponses: 2
    Dernier message: 27/05/2002, 19h46
  4. A lire imp�rativement avant de poster un message
    Par ok.Idriss dans le forum Demandes
    R�ponses: 0
    Dernier message: 01/05/2002, 18h57

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