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] Accéder aux contrôles de la fenêtre appelante


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Points : 7
    Points
    7
    Par défaut [MFC] Accéder aux contrôles de la fenêtre appelante
    Bonjour.
    J'ai une fenêtre principale composée de 2 splitters.
    Dans chaque espace défini par un splitter, une classe CView (donc trois au total)

    Dans la fenêtre principale, je crée, via une entrée de menu, une CDialog non modale. Et je souhaiterai décocher l'entrée de menu (de la fenêtre princiaple) lors de la fermeture de la CDialog.

    Autre chose:
    Dans la CDialog, j'ai une ListBox Control. Lors que je double-clique sur un objet de cette liste, j'aimerai pouvoir accéder à une des CView de l'application principale.

    Merci d'avance.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    pour desactiver une ligne de menu:
    http://c.developpez.com/faq/vc/?page...isableItemMenu
    pour la coche :
    http://c.developpez.com/faq/vc/?page...tCheckMenuItem

    pour acceder a une autre view par le splitter .
    il faut acceder a l'emplacement ou est stockée le spliter a savoir la mainframe dans le cas du SDI et de la MDIChild dans le cas d'une MDI:
    AfxGetMainWnd() en SDI
    GetParentFrame() en MDI .
    A caster sur la classe utilisateur correspondante (CMainFrame ou CChild)
    une fois acces au spliter tu peux utiliser la fonction:
    GetPane (int row,col) qui renvoie un pointeur sur une CWnd * ,a caster sur la classe correspondante.


  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Points : 7
    Points
    7
    Par défaut
    Merci pour le AfxGetMainWnd() (c'est en effet une SDI)
    Par contre, lorsque je change l'état de ma variable booléenne pour tester si je dois cocher ou non l'entrée du menu (via le OnUpdate), celle-ci n'a pas l'air d'être prise en compte dans cette fonction

    Extrait de la classe de Doc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CConfigurateurDoc::OnUpdateAffichagePaniervirtuel(CCmdUI *pCmdUI)
    {
    	if( PanierVirtuelOuvert )
    		pCmdUI->SetCheck(1);
    	else
    		pCmdUI->SetCheck(0);
    }
    Extrait de la classe CDialog dans laquelle je change l'état de ma variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CPanierVirtuel::OnClose()
    {
    	CConfigurateurDoc* doc = (CConfigurateurDoc*)AfxGetMainWnd();
    	doc->PanierVirtuelOuvert = false;
     
    	CDialog::OnClose();
    }
    Et lorsque je clique sur mon menu, la fonction OnUpdate est appelée (je l'ai vérifié avec une AfxMessageBox), mais l'état de ma variable ne semble pas avoir changé.
    L'entrée de menu est toujours cochée

Discussions similaires

  1. Comment accéder aux contrôles depuis du code?
    Par Leelith dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 15/12/2009, 21h02
  2. Accéder aux contrôle d'une autre Form
    Par Auriga1 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/02/2009, 15h45
  3. Réponses: 3
    Dernier message: 02/01/2009, 00h28
  4. Accéder aux champs d'une fenêtre d'un autre logiciel
    Par Melodie dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 13/03/2008, 09h15
  5. Réponses: 7
    Dernier message: 26/02/2007, 12h07

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