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 modifier le texte d'un Text Editor


Sujet :

MFC

Vue hybride

farfadet MFC modifier le texte d'un... 14/11/2006, 09h52
Médinoc Le modifier dans l'éditeur ou... 14/11/2006, 09h55
farfadet Quelle est la différence... 14/11/2006, 10h01
Médinoc _T(), ça sert pour la... 14/11/2006, 10h52
farfadet ok ;) Merci pour tes... 14/11/2006, 11h03
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut MFC modifier le texte d'un Text Editor
    Bonjour,

    je place un control Text Editor (ou encore Static Text) sur mon UI.

    Je souheterai sur un clic de bouton modifier le texte de ce control.

    ça fait 2h que je galère et j'aurai vraiment besoin d'un coup de main.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    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 394
    Par défaut
    Le modifier dans l'éditeur ou dans le programme ?
    Dans le programme, ça dépend selon que le TextEdit est mappé en tant que chaîne ou en tant que controle.

    En tant que chaîne, on a un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TypeRetour CMonUI::OnBouton()
    {
    UpdateData(TRUE);
    m_edit1 = _T("Coucou");
    UpdateData(FALSE);
    }
    Et en tant que contrôle, on a un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TypeRetour CMonUI::OnBouton()
    {
    m_edit1.SetWindowText(_T("Coucou"));
    }
    La méthode pour mapper un contrôle à une variable membre dépend de la version de Visual...
    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é
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut
    Quelle est la différence qu'il soit mappé en tant que chaine ou en tant que control finalement, si je veux uniquement modifier son texte ??

    Par contre venant d'un monde C# où label.Text suffit , je voudrai savoir à quoi sert le define que tu utilises ?

    Merci

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    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 394
    Par défaut
    _T(), ça sert pour la compilation en mode Unicode.
    En fait, sous Windows, chaque fonction existe en deux versions, char et wchar_t. Le type TCHAR est un type dépendant du mode. Ainsi, ces trois codes sont valides:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MessageBoxA(NULL, "Bonjour tout le monde!", "Msg", MB_OK);
    MessageBoxW(NULL, L"Bonjour tout le monde!", L"Msg", MB_OK);
    MessageBox(NULL, _T("Bonjour tout le monde!"), _T("Msg"), MB_OK);
    Généralement, il est conseillé d'utiliser le troisième code, car ainsi il suffit de changer une option dans le projet pour choisir d'utiliser la version char ou la version wchar_t.
    Si tu regardes la déclaration de MessageBox, tu verras un truc de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #ifdef UNICODE
    #define MessageBox MessageBoxW
    #else
    #define MessageBox MessageBoxA
    #endif
    C'est pourquoi sous Windows quand le code est bien fait, pratiquement toutes les chaînes sont entourées de _T() ou TEXT() (c'est la même chose).

    Si tu enlèves le _T() pour une fonction normale de Windows, tu verras que selon le mode, tu devras mettre L devant la chaîne ou bien rien du tout.
    Pour les CString, je ne crois pas, car la fonction est surchargée: Si on utilise le "mauvais" type de chaîne, la fonction convertira d'elle-même. Mais ça ralentira le programme, car si on met le "bon" type dès le début, pas besoin de convertir.
    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.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 70
    Par défaut
    ok

    Merci pour tes réponses, g pu faire ce que je souhaitais.


    A bientot et bonne journée

  6. #6
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    Bonjour,
    désolé de déterrer un topic si vieux.
    mais je voudrais savoir la méthode de changer le texte a l'aide du RAD de MFC

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/02/2007, 13h47
  2. modifier la couleur d'un texte dans un input text
    Par mic79 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 05/01/2005, 16h45
  3. [MFC] inverser la couleur d'un texte
    Par ginounet dans le forum MFC
    Réponses: 6
    Dernier message: 11/06/2004, 20h13
  4. Modifier la casse d'un texte
    Par glsn dans le forum ASP
    Réponses: 8
    Dernier message: 08/01/2004, 11h12
  5. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54

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