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 CDialog - lister tous les composants presents


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�

    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    650
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 650
    Par d�faut MFC CDialog - lister tous les composants presents
    'Soir,

    je cherche s'il est possible de lister "aveuglement" tous les composants pr�sents sur un CDialog ?

    un peu comme en delphi qu'en on utilise le tableau Components et la variable ComponentCount :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.Button1Click(Sender: TObject);
    var i : integer;
    begin
    for i := 0 to ComponentCount -1 do
      begin
      if Components[i].ClassName = 'TEdit' then TEdit(Components[i]).Text := '';
      end;
    end;
    Mon but est de repositionner proportionnelement tous les composants lors d'un resize.

    merci

  2. #2
    Membre chevronn� Avatar de Mayti4
    Inscrit en
    F�vrier 2004
    Messages
    442
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2004
    Messages : 442
    Par d�faut
    Regarde du cot� des m�thodes GetNextWindow(...), IsChild(...).

  3. #3
    Membre �clair�

    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    650
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 650
    Par d�faut
    je dois donc lister tous les "windows" et voir s'ils sont enfants de ma CDialog, c'est ca ?

  4. #4
    R�dacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par d�faut
    voir aussi CWnd::GetTopWindow

  5. #5
    Membre �clair�

    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    650
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 650
    Par d�faut
    comment ca ?

    a quoi il va me servir le "top window" ?

    merci

  6. #6
    Membre �clair�

    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    650
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 650
    Par d�faut
    ok, j'ai capt�, ca donne un poiteur sur le premier enfant, puis apres, je me decale d'element en element

    ok... merci

  7. #7
    Membre �clair�

    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    650
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 650
    Par d�faut
    heu... je cycle en boucle sur mes compo apparamment et si j'essai de memoriser le top window, et quitter lorsque je retombe dessus, tous les elements ne sont pas listes

  8. #8
    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,
    ce code s'applique dans la fenetre parent des controles : la CFormView ou la CDialog
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            char szClassName[100];
    	CWnd *pCtrl=GetWindow(GW_CHILD);
    	while(pCtrl)
    	{
    		::GetClassName(pCtrl->GetSafeHwnd(),szClassName,sizeof(szClassName));
    		if(!strcmp(szClassName,"Edit")) 
    		{
    			CString str;
    			pCtrl->GetWindowText(str),
    				TRACE("\nEdit:%s",static_cast<const char *>(str));
    		}
    		pCtrl = pCtrl->GetWindow(GW_HWNDNEXT);
    	}
    on r�cup�re la premiere fenetre fille de la fenetre apr�s on it�re...

  9. #9
    Membre confirm�
    Inscrit en
    Septembre 2003
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 49
    Par d�faut
    Salut
    Tu peux aussi utiliser EnumChildWindows
    a mon avis c'est plus simple
    a+

  10. #10
    Membre �clair�

    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    650
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 650
    Par d�faut
    Ok, merci, j'avais quelque chose sensiblement differents mais mon soucis venait en fait de l'ID de mes statics textes que j'avais laiss� � IDC_STATIC (-1)

    c'est cool merci.

  11. #11
    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
    Citation Envoy� par adel_dz
    Salut
    Tu peux aussi utiliser EnumChildWindows
    a mon avis c'est plus simple
    a+
    c'est pas si sur ,c'est une api win32 :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    BOOL EnumChildWindows(          HWND hWndParent,
        WNDENUMPROC lpEnumFunc,
        LPARAM lParam
    );
    si tu enleves les fioritures du code post�:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
       CWnd *pCtrl=GetWindow(GW_CHILD);
       while(pCtrl)
       {           
          pCtrl = pCtrl->GetWindow(GW_HWNDNEXT);
       }

  12. #12
    Membre �clair�

    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    650
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 650
    Par d�faut
    ouep, c'est ce que j'avais gard�

    merci encore

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Synth] Ou trouver un exemple traitant tous les composants ?
    Par dam_moreyllo dans le forum Interfaces Graphiques en Java
    R�ponses: 2
    Dernier message: 14/04/2006, 12h24
  2. Comment lister tous les composants d'une fiche ?
    Par tipiweb dans le forum Langage
    R�ponses: 2
    Dernier message: 18/01/2006, 21h53
  3. [Swing] Mettre une police � tous les composants
    Par MrEddy dans le forum AWT/Swing
    R�ponses: 2
    Dernier message: 02/05/2004, 15h21
  4. Envoie d'un message a TOUS les composant d'une form
    Par chddv dans le forum Composants VCL
    R�ponses: 7
    Dernier message: 15/09/2003, 09h47

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