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] Comment désactiver un controle dans une CDialog


Sujet :

MFC

  1. #1
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut [MFC] Comment désactiver un controle dans une CDialog
    bonjour,

    ca parait une question debile certes ....mais je ne me suis pas encore habitué avec les composants ...donc voilà je dispose d'une CDialog et je veux manipuler l'affichage de certains composants ( desactiver / rendre invisible / rendre visbile ..) mais je ne sais pas comment proceder

    en effet j'ai :

    - un BOUTON
    - un CEDIT
    - un Group Box
    - un Label static

    que je veux rendre invisible dans mon Cdialog

    merci

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    pour le déactiver, il faut utiliser EnableWindow et FALSE

  3. #3
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Et pour le rendre invisible: ShowWindow(SW_HIDE);

  4. #4
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    oui mais ces methodes j'y accede comment? me faudra t il une variable de controle sur chaque composant en son tyope pour y acceder !!

  5. #5
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    oui il me faut ca je viens de le tester c'est bon..cependant je en peux pas definir des varaible de controle pour le label et le group box alors comment faire?

  6. #6
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    j'ai mis ça dans le constructeur de mon CDialog en debut puis meme dans OnInitDialog()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    m_OKOCR_B.ShowWindow(FALSE); // un bouton 
    m_NUMCEDULA_B.ShowWindow(FALSE); // un cedit

    mais ça me genere une errreur de type ASSERT pointant sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    BOOL CWnd::ShowWindow(int nCmdShow)
    {
    	ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL)); // le niveau de l'erreur est ici !!
     
    	if (m_pCtrlSite == NULL)
    		return ::ShowWindow(m_hWnd, nCmdShow);
    	else
    		return m_pCtrlSite->ShowWindow(nCmdShow);
    }
    je ne comprends pas !! ou est ce que je dois donc mettre mon code ?

  7. #7
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    j'ai mis ça dans le constructeur de mon CDialog en debut puis meme dans OnInitDialog()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    m_OKOCR_B.ShowWindow(FALSE); // un bouton 
    m_NUMCEDULA_B.ShowWindow(FALSE); // un cedit

    mais ça me genere une errreur de type ASSERT pointant sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    BOOL CWnd::ShowWindow(int nCmdShow)
    {
    	ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL)); // le niveau de l'erreur est ici !!
     
    	if (m_pCtrlSite == NULL)
    		return ::ShowWindow(m_hWnd, nCmdShow);
    	else
    		return m_pCtrlSite->ShowWindow(nCmdShow);
    }
    je ne comprends pas !! ou est ce que je dois donc mettre mon code ?

  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
    je pense que tu devrais approfondir ce post de la faq:
    http://c.developpez.com/faq/vc/?page...ToWorkWithCtrl

  9. #9
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    merci pour le lien c'est tres utile j'ai pu gerer l'affichage du bouton et du Cedit , cependant je ne peux pas definir des varaible de controle pour le label et le group box alors comment faire pour gerer leur affichage a eux aussi

  10. #10
    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
    il faut mettre un identifiant different de IDC_STATIC ....

  11. #11
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    je viens de le faire j'ai respectivement :

    IDC_LabelNUMCED pour le label
    IDC_GPNUMCED pour le group box

    en plus mon group box a la propriété group = false ( je l'utilis epas encore mais il sera utilise pour remplacer le composant panel qui n'est pas supporté par les MFC )

    le probleme est quand je veux ajouter une variable de controle sur les deux composants :

    - pour le label : la partie variable de controle est grisé et je ne peux desormais choisir qu'un type de variable normal ( int , bool...)

    - pour le group box : la partie avraible de controle est affichée mais je ne le vois pas dans la liste des ID et sonn type est par defuat BUTTON

    - el comble c'est que quand j'essaie de cocher quand meme "variable de controle " et je ferme la fenetre "assistan,t d'ajout de variables membres" et je la reouvre je trouve les deux anomalies toujours MAIS inversement c'est a dire celle du group box est dans le label et vis versa ...c'esta dire :

    pour le group box : la partie variable de controle est grisé et je ne peux desormais choisir qu'un type de variable normal ( int , bool...)

    - pour le label : la partie avraible de controle est affichée mais je ne le vois pas dans la liste des ID et son type est par defuat BUTTON


    pourrais tu m'expliquer ca et me dire comment en finir avec ces deux mechants composants

    merci

  12. #12
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    bon j'ai resolu le probleme en ajoutant manuellement dans le code la variable de controle relative au label static ...et ca marche cependant pour le group box je n'arrive pas a trouver son type !!

  13. #13
    Membre confirmé Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Par défaut
    je n'arrive toujours pas a trouver le type de ce composant...quelqu'un a une idee:!!!

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/03/2011, 07h25
  2. [Template] comment modifier un control dans une template
    Par TheBlackReverand dans le forum Silverlight
    Réponses: 1
    Dernier message: 05/06/2009, 20h55
  3. Réponses: 13
    Dernier message: 09/03/2006, 18h17
  4. Réponses: 8
    Dernier message: 01/03/2006, 18h19
  5. Réponses: 4
    Dernier message: 22/11/2005, 17h50

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