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 :

[débutant] Accéder à plusieurs variables "numérotées&qu


Sujet :

MFC

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut [débutant] Accéder à plusieurs variables "numérotées&qu
    Salut à tous,

    C'est une question d'ordre général mais je donne un exemple:
    Voilà dans mon appli j'ai une dialog box qui peut avoir jusqu'à 128 combo box. Je leur ai attribué une variable avec ClassWizard, ComboX ou X est le numéro de la combo.
    J'aimerais savoir si il ya un moyen d'atteindre ces variables au sein d'une boucle for par exemple à l'aide de l'indice de boucle du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0;i<128;i++)
    {
          Combo[i].ShowWindow(SW_SHOW); //c'est juste pour l'exemple!
    }
    Car je n'ai pas envie d'écrire les 128 variables à chaque fois.
    J'ai pensé à les mettre dans un tableau mais c'est pareil faut que je les mette une par une....(ca vaut le coup si je m'en sers plusieurs fois)
    Ensuite j'ai pensé construire le nom avec une chaine de caracteres mais la variable n'a pas le bon type, forcément.

    C'est peut-être un peu stupide comme question mais j'ai beau chercher sur le forum et dans ma tête je ne vois rien (désolé je suis débutant)....donc si vous pouviez m'aider ce serait cool. MERCI.

  2. #2
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Points : 113
    Points
    113
    Par défaut
    Salut,

    à priori je dirai non, mais tu peux utiliser la technique suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	CWnd *pCtrl=GetWindow(GW_CHILD); 
    	while(pCtrl) 
    	{ 
    		//ici traitement sur ton controle
    		pCtrl = pCtrl->GetWindow(GW_HWNDNEXT);
    	}
    tu peux rajouter un test avec IsKindOf pour vérifier que c'est bien un combo si tu as d'autres contrôles.

    Sinon, tu peux surement faire une liste d'objets (cf CObList sur msdn) mais la solution dessus me parait meilleure.

    Merci à Farscape qui avait fourni ce petit bout de code y'a pas longtemps (alors que je m'étais dit le matin même que ce serait pratique pour mon appli de faire un truc dans le genre, j'ai même pas eu à chercher comment faire du coup )

    Bonne chance

  3. #3
    Membre émérite
    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
    Points : 2 747
    Points
    2 747
    Par défaut
    j'aurais ajouter ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CWnd *pCtrl=GetWindow(GW_CHILD); 
       while(pCtrl && dynamic_cast<CComboBox*>(pCtrl) ) 
       { 
          //ici traitement sur un comboBox
     
          pCtrl = pCtrl->GetWindow(GW_HWNDNEXT); 
       }
    il y a du linge sur la corde à linge

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    oui mais là si tu n'as pas tous les combobox à la suite dans ta boucle, tu risque d'en louper. Il faut faire le test à l'intérieur, et pas dans la condition de la boucle

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Merci beaucoup jul (et farscape aussi donc!) je pense que ça va aller parfait pour ce que je veux faire.
    Je ne connaissais pas le coup du GW_HWNDNEXT, merci beaucoup pour le tuyau.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    Et je rajouterais pour les mêmes raisons déjà évoquées dans le post sus cité par jul54 .
    que le dynamic_cast sera incorrect puisque getwindow ne renvoie pas l'objet d'origine (il n'existe peut être pas :pas de variable attachée par exemple mais peu importe)
    Mais il associe un objet de la classe CWnd a un handle de fenêtre d'ou mon test sur la classe « windows » et non la signature rtti ou IsKindOf

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

Discussions similaires

  1. [débutant] partage de variable par plusieurs threads
    Par dahtah dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 06/03/2007, 13h34
  2. [débutant] plusieur bouton -> plusieur variable ?
    Par cyrill.gremaud dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 03/11/2006, 14h27
  3. [Débutant - Avis] même variable dans plusieurs pages...
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/12/2004, 22h50
  4. [JSP][débutant] recupérer des variables...
    Par yass dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 08/04/2004, 11h05
  5. [Débutant][bundle] plusieurs "bundle"
    Par lando dans le forum Développement Web en Java
    Réponses: 12
    Dernier message: 11/09/2003, 18h13

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