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

Visual C++ Discussion :

Code pour dégriser 1 boite de dialogue


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut Code pour dégriser 1 boite de dialogue
    Bonjour,

    Je suis en train de réaliser un projet VRML et j'ai un soucis avec l'activation du contenu d'une boite de dialogue (dans un projet application win32 sous visual C++).
    J'aimerais que je coche la checkbox "activer", tout se dégrise. J'ai essayé avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EnableDlgItem(hwnd,IDC_....) et EnableDlgItemText(...)
    mais ca ne marche pas.

    Pouvez vous m'aider s'il vous plait.

    Voici le screen de la boite de dialogue en question :

    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    EnableWindow(GetDlgItem(hwnd, IDC_...), TRUE);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    merci, je vais tester !
    Je vous tiens au courant...
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  4. #4
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Bonjour,

    Je viens de tester, ca ne fonctionne pas. Pas de probleme a la compilation et execution, mais le fait de cocher la ckeckbox "activer" n'active pas les autres box de la fenetre.

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(IsDlgButtonChecked(hwnd, IDC_CHECK_ACTIV_LUM_DIREC) == BST_CHECKED) {
    EnableWindow(GetDlgItem(hwnd, IDC_LUMIERE_AMBIANTE), TRUE);
    ...
    j'ai essayé aussi avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(IsDlgButtonChecked(hwnd, IDC_CHECK_ACTIV_LUM_DIREC) == BST_CHECKED) {
    EnableWindow(GetDlgItemText(hwnd, IDC_LUMIERE_AMBIANTE), TRUE);
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    OK.
    Déjà, commence par m'expliquer comment tu espères qu'EnableWindow() puisse marcher sur une fonction qui retourne du texte.

    Ensuite, ta checkbox, elle est bien en auto ? Je veux dire, si tu cliques dessus, tu es sûr qu'elle passe directement en Checked ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Oula, tu serais pas en train de me gronder ?!

    1. J'ai essayé avec GetDlgItemText au cas où, on ne sait jamais...

    2. Je n'ai pas connaissance de cette "fonction" auto, le probleme pourrait bien venir de là. Peux-tu me dire comment faire ?

    Et quel est le code pour dégriser les IDC_STATIC? Il y a une erreur de compilation avec ceux-ci.

    Merci pour ton aide !

    Pour aider, voici ma fonction :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    LRESULT CALLBACK lumdir (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lparam) { //accolade 0
     
    	TCHAR   vIDC_ROUGE[10]="0",
    			vIDC_VERT[10]="0",
    			vIDC_BLEU[10]="0",
    			vIDC_DIREC_X[10]="0",
    			vIDC_DIREC_Y[10]="0",
    			vIDC_DIREC_Z[10]="0",
    			vIDC_LUMIERE_AMBIANTE[10]="0",
    			vIDC_LUMIERE_I_LUM[10]="0";
     
     
    	switch (msg) { //accolade 1
    			case WM_INITDIALOG :
    				CheckDlgButton( hwnd, IDC_CHECK_ACTIV_LUM_DIREC, BST_UNCHECKED);
    				if(IsDlgButtonChecked(hwnd, IDC_CHECK_ACTIV_LUM_DIREC) == BST_CHECKED)
    				{
    					EnableWindow(GetDlgItem(hwnd, IDC_LUMIERE_AMBIANTE), TRUE);
    				}
    				SetDlgItemText( hwnd, IDC_ROUGE, vIDC_ROUGE);
    				SetDlgItemText( hwnd, IDC_VERT, vIDC_VERT);
    				SetDlgItemText( hwnd, IDC_BLEU, vIDC_BLEU);
    				SetDlgItemText( hwnd, IDC_DIREC_X, vIDC_DIREC_X);
    				SetDlgItemText( hwnd, IDC_DIREC_Y, vIDC_DIREC_Y);
    				SetDlgItemText( hwnd, IDC_DIREC_Z, vIDC_DIREC_Z);
    				SetDlgItemText( hwnd, IDC_LUMIERE_AMBIANTE, vIDC_LUMIERE_AMBIANTE);
    				SetDlgItemText( hwnd, IDC_LUMIERE_I_LUM, vIDC_LUMIERE_I_LUM);
     
     
    			return 0;
     
    			case WM_COMMAND :
    				switch LOWORD(wParam) { //accolade 2
     
    				case IDOK :
    					GetDlgItemText( hwnd, IDC_ROUGE, vIDC_ROUGE, 10);
    					GetDlgItemText( hwnd, IDC_VERT, vIDC_VERT, 10);
    					GetDlgItemText( hwnd, IDC_BLEU, vIDC_BLEU, 10);
    					GetDlgItemText( hwnd, IDC_DIREC_X, vIDC_DIREC_X, 10);
    					GetDlgItemText( hwnd, IDC_DIREC_Y, vIDC_DIREC_Y, 10);
    					GetDlgItemText( hwnd, IDC_DIREC_Z, vIDC_DIREC_Z, 10);
    					GetDlgItemText( hwnd, IDC_LUMIERE_AMBIANTE, vIDC_LUMIERE_AMBIANTE, 10);
    					GetDlgItemText( hwnd, IDC_LUMIERE_I_LUM, vIDC_LUMIERE_I_LUM, 10);
    fich=fopen("toto.wrl","a");					
    					fprintf(fich,"DirectionalLight {\n");
    					fprintf(fich,"ambientIntensity %s\n",vIDC_LUMIERE_AMBIANTE);
    					fprintf(fich,"color %s %s %s\n",vIDC_ROUGE, vIDC_VERT, vIDC_BLEU);
    					fprintf(fich,"direction %s %s %s\n",vIDC_DIREC_X, vIDC_DIREC_Y, vIDC_DIREC_Z);
    					fprintf(fich,"intensity %s\n",vIDC_LUMIERE_I_LUM);
    					fprintf(fich,"on TRUE \n");
     
    					fprintf(fich, "}\n");
     
     
    					fclose(fich);
    					EndDialog(hwnd,1);
    					return 0;
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

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

Discussions similaires

  1. Utiliser tkinter pour afficher une boite de dialogue
    Par AmFaye dans le forum Odoo (ex-OpenERP)
    Réponses: 2
    Dernier message: 17/12/2013, 14h17
  2. Quel langage choisir pour faire des boites de dialogues + BDD ?
    Par dsant dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 15/03/2010, 21h30
  3. Réponses: 6
    Dernier message: 15/11/2007, 23h11
  4. Réponses: 10
    Dernier message: 20/05/2005, 11h47
  5. Réponses: 3
    Dernier message: 27/04/2005, 17h52

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