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 :

Recuperer les notifications des ctrles d'1 fenetre fille


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 8
    Par défaut Recuperer les notifications des ctrles d'1 fenetre fille
    Bonjour à tous,

    Je me trouve face à une boite de dialogue modale de type "popup" qui, elle-même, crée une boite de dialogue fille (child) non modale. (Je pourrai préciser pourquoi si nécessaire.)

    Je souhaite récupérer dans ma boite de dialogue mère les notifications des boutons de la boite de dialogue fille, mais n'y parviens pas.

    Exemple :
    Soit MERE ma boite de dialogue mère, FILLE la boite de dialogue fille et BOUTON un bouton de FILLE.
    Il faut que qd je clique sur BOUTON, l'information de clic remonte jusqu'à MERE pour je puisse y positionner mon message handler.

    Merci de votre aide.

  2. #2
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    sur le onclick de la fenetre fille :

    GetParent()->PostMessage( MonMessagePourDireQuiIlYAEutUnClick,0,0 );

    tu recuperes dans le messageMap de la mere le message poster.

    si tu veux pas poster, tu peux appeller directement un methode de la fenetre en recuperant le pointeur de la fenetre mere

  3. #3
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 8
    Par défaut
    J'ai déjà pensé à ces méthodes, mais j'ai des tas de controles à gérer qui se trouvent dans cette fenetre fille : ça va rendre l'appli un peu lourde !

    En fait, je voulait rendre "transparente" la fenetre fille.

    Petite explication qui pourrait faire naître des idées ... :

    Ce que je souhaite en premier lieu, c'est afficher dans une boite de dialogue qui contient déjà divers controles, des onglets qui eux-même contiennent divers controles. Après de longues recherches, j'ai fini par créer 1 fenetre fille par onglet, que j'affiche ou que je masque selon l'onglet sélectionné.

    Si cette explication pouvait inspirer quelqu'un ...

  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
    salut, je sais pas si ça peut s'appliquer a ton pb ,
    mais dans un contexte un peu <> j'ai relié contrôles situes dans la dialogBar à des variables de dans la formview (meme fenêtre subclass ) peut être par ce biais ça peut marcher....

  5. #5
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 8
    Par défaut
    En effet, il est fort possible que le mécanisme soit identique. Comment as-tu fait ?

  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
    re,
    dans mes classes de controles j'ai rajouter le code suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    void TBaseEdit::AttachCtrl(CWnd* pParentWnd,int nIDCtrl)
    {		
    	CWnd *pCWnd=pParentWnd->GetDlgItem(nIDCtrl);
    	ASSERT(pCWnd!=NULL);
     
    	LPUNKNOWN pUnk = pCWnd->GetControlUnknown();
    	if(pUnk)
    	{
    		pCWnd->GetProperty(DISPID_TEXT, VT_BSTR, (void*)&str);
    	}
     
    	SubclassDlgItem(nIDCtrl,pParentWnd);
    	if(pUnk)
    	{
    		SetProperty(DISPID_TEXT, VT_BSTR, str);
    		m_strControl=str;
    	}
    	else if(m_hWnd) SetWindowText(str);
    }
    dans ma Formview j'ai un edit de la classe TBaseEdit
    dans le initialupdate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonEdit.AttachCtrl(pdialogbar,idducontrole);

Discussions similaires

  1. Recuperer les max des dates à partir d'une autre table
    Par inabil dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/11/2006, 15h19
  2. [XSLT] Récupérer les valeur des champs
    Par webspeak dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/11/2006, 17h17
  3. recuperer les valeurs des checkbox selectionnés
    Par kagura dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/03/2006, 10h21
  4. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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