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] Affichage dans un textbox


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut [MFC] Affichage dans un textbox
    Bonjour à tous !

    Question de débutant, et je m'en excuse, mais je n'arrive pas à afficher le résultat d'une variable dans mon textbox...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int Duree = FSOUND_Stream_GetLengthMs(musique);
    Je récupère la durée de la musique (en int donc )
    Mais je n'arrive pas à l'afficher dans mon controle TXT_DUREE

    Et je galère !!!

    Application MFC en boite de dialogue sous Visual Studio 2005 C++

    Merci

  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
    tu es loin d'avoir posté assez de code.
    On s'en moque de savoir d'où vient le int!
    Par contre, si on pouvait voir tout le code lié à la textbox (notamment la déclaration de ta classe de boîte de dialogue), ce serait plus intéressant...
    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
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    Ben désolé, j'avais bien dit que c'était une question de débutant... Je ne vois pas bien tout ce que tu me dis (Déclaration de la classe de la boite de dialogue???)

    Je pensais qu'il n'y avait pas besoin de tant d'infos que ça...

  4. #4
    Invité
    Invité(e)
    Par défaut
    pour écrire dans ta textBox, tu dois utiliser SetWindowText().

    si tu as dores et deja ajouté ton control comme variable de classe dans ta fenetre, tu l'appelles comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTextBox.SetWindowText(_T("Hello World"));
    sinon, tu peux toujours y accéder par pointeur, mais c'est déconseillé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (GetDlgItem(IDC_MY_TEXTBOX))->SetWindowText(_T("Hello World"));
    si tu veux formatter des données numériques ou venant d'autres sources, passe par la classe CString...

    si tu veux qu'on t'aide plus, poste un exemple de code significatif de ce que tu as deja écrit...

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    Merci toxcct,

    La méthode d'accès par pointeur, j'ai en effet déjà essayé, mais l'affichage me retourne des carrés...

    Sinon, voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void CCaBa_PlayerDlg::OnBnClickedPlay()
    {
    	FSOUND_Init(44100, 32, 0);
    	FSOUND_Stream_Stop(musique);
    	musique = FSOUND_Stream_Open("toyou.mp3", 0, 0, 0);
    	FSOUND_Stream_Play(FSOUND_FREE, musique);
    	FSOUND_SetVolume(FSOUND_ALL, 255);
    	CSliderCtrl *pTime=static_cast<CSliderCtrl*>(GetDlgItem(SLIDER_TIME));
    	int Duree = FSOUND_Stream_GetLengthMs(musique);
    	pTime->SetRange(0, Duree/1000); 
    	(GetDlgItem(TXT_DUREE))->SetWindowText(Duree);
    }
    Mais je suis pas sûr que mon code serve beaucoup... Comment utiliser la classe CString ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Copernic09 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        int Duree = FSOUND_Stream_GetLengthMs(musique);
        (GetDlgItem(TXT_DUREE))->SetWindowText(Duree);
    }
    tu es en train de passer un int a SetWindowText(), alors qu'il attend soit un LPCTSTR soit un CString.

    modifie ton code comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        int Duree = FSOUND_Stream_GetLengthMs(musique);
        CString strDuree;
        strDuree.Format(_T("%d"), Duree);
        (GetDlgItem(TXT_DUREE))->SetWindowText(strDuree);
    }

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Par défaut
    Merci ça fonctionne !

    Maintenant, il ne me reste plus qu'à faire défiler le temps...

  8. #8
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    il y a une fonction pratique qui fait tout ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    BOOL SetDlgItemInt(          HWND hDlg,
        int nIDDlgItem,
        UINT uValue,
        BOOL bSigned
    );
    regardes dans la MSDN

    @+

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 01/06/2006, 15h32
  2. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/02/2006, 12h09
  3. Problème d'affichage dans les textbox
    Par popinenhbourg dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 28/02/2006, 11h36
  4. Affichage dans une textbox
    Par philo71 dans le forum MFC
    Réponses: 25
    Dernier message: 30/01/2006, 09h34
  5. [mfc] affichage dans une boite de dialog
    Par chronos dans le forum MFC
    Réponses: 3
    Dernier message: 14/06/2004, 15h12

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