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 :

[C++] MFC débutant


Sujet :

MFC

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut [C++] MFC débutant
    Bonjour,
    J'ai fait un petit peu de C++, mais je n'y connais rien du tout, e je n'ai jamais fait de MFC, j'aimerais savoir comment faire pour permettre à un Static Text de prendre plusieurs lignes

    Merci

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    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 393
    Par défaut
    Je crois qu'il faut lui donner le style SS_MULTILINE.
    Il doit y avoir une propriété correspondante dans les éditeurs graphiques de Visual (case à cocher sous Visual 6, champ dans la fenêtre Propriétés sous les versions supérieures)...
    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 éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Ok, merci de ta réponse Médino, mais je suis sous Visual Studio 2005, j'ai dans la ToolBox, quand je choisi un Static Text, il n'y a pas ensuite dans les "properties"' de Multiline ou autre,...

    Mais, je suis un vrai débutant, et peut-être n'ai-je pas compris ce que tu voulais dire par "donner le style Multiline", sinon, merci pour ta réponse,
    et bonne journée !

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    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 393
    Par défaut
    N'as-tu pas une boîte dialogue avec divers onglets, dont "styles" et "extended styles" ?
    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 éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Non, dsl, je te fais une copie d'écran :
    Lien image zippé
    C'est certainement un truc tout bête, je suis dsl, mais j'ai vraiment besoin de savoir comment faire,...

  6. #6
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Il doit y avoir une propriété correspondante dans les éditeurs graphiques de Visual (case à cocher sous Visual 6, champ dans la fenêtre Propriétés sous les versions supérieures)...
    sur ton screen on peut voir l'encart Properties qui doit contenir le fameuse option

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Autre image plus explicite
    Je peux me tromper, mais j'ai fait une nouvelle image de Visual Studio 2005, ou je vois les Properties disponibles quand je mets le focus sur ma StaticText, et je ne vois rien qui ressemble à un multiLigne,...

    (Par la même occasion, je cherche également comment faire pour définir une Font et mettre une couleur avec le designer, même si c'est moins urgent,...)

  8. #8
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    as-tu essayé de passer des '\n' dans ton CStatic ?

  9. #9
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    ou même \r\n dans ta string
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  10. #10
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Oui, je l'ai fait, mais malheureusement, cela ne fonctionne pas,...


    EDIT : Ha mince !
    Je me suis trompé, le problème est plus compliqué que cela,...
    Je m'explique : je reprends un projet développé par quelqu'un de bien plus compétant, cette reprise ne devant nécessité que peu, et même très peu de difficulté, et j'ai tout de même pas mal de problèmes,...
    Dans le cas présent, le prblm est que pour remplir mon IStatEditor, auquel une variable de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ns_mfc_ex::CStaticEx c_IsoS;
    a été attribué, le prog fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetUpStatic ( c_IsoS,					147 );
    Ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void NomClasse::SetUpStatic ( ns_mfc_ex::CStaticEx &Ctrl, unsigned long iLabel )
    {
    	Ctrl.SetFont ( &m_FontLabel, TRUE );
    	Ctrl.SetWindowText ( ns_mfc_ex::CStringEx ( iLabel ));
    }
    Et, avec cette manière d'opérer, j'ai beau mettre des \n et des \r dans ma string, il me les affiche tranquillement comme si de rien n'était, alors que si je mets simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c_IsoS.SetWindowText("test \n\r test");
    , je n'ai aucun problème,...

  11. #11
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Personnellement je te conseillerai d'oublier ces CStatic et de directement gérer ton texte dans un ou plusieurs CString que tu afficheras à l'aide de DrawText
    C'est sûr que c'est moins assisté, mais au moins tu as la main sur ce que tu fais.

  12. #12
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Bon, là, je ne sais pas si qui que ce soit d'autre que le développeur du composant ns_mfc_ex::CStringEx qui puisse m'aider, et je n'ai pas les sources de ce composant,...




    J'ai changé un peu le code, en passant d'abord par un CString, de sorte que cela fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void CPage01::SetUpStatic ( ns_mfc_ex::CStaticEx &Ctrl, unsigned long iLabel )
    {
    	Ctrl.SetFont ( &m_FontLabel, TRUE );
    	CString st = ns_mfc_ex::CStringEx ( iLabel );	
    	Ctrl.SetWindowText ( st);
    }

    Et, alors que le CString a la bonne valeur, avec un beau '\n', rien n'y fait, il me l'affiche comme si c'était un caractère normal,...
    EDIT: TheGzD, j'aimerais pouvoir suivre ton conseil, seulement, je ne peux pas vraiment, je dois juste faire des modifs sur le projet, mais je trouve haïssable de ne pas avoir la main sur ce que l'on fait,...

  13. #13
    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
    nativement, le controle static est multiline

    la seule explication que j'ai, c'est que ton controle CStaticEx se dessine lui meme et ne prend pas en charge le multiline ...

    repasse sur un CStatic normal, ou recuperes le source de CStaticEx

    @+

  14. #14
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    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 393
    Par défaut
    Ah, je viens de voir en effet qu'il n'y a pas de propriété MultiLine, j'ai confondu avec les EditBoxes.
    Simplement, il faut s'assurer que le contrôle n'ait pas le style SS_SIMPLE (propriété "Simple").
    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.

  15. #15
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    La propriété Simple du Control est bien à false ici, mais ça ne change rien, il considère toujours mon \n comme un caractère normal,...

    Merci quand même !

  16. #16
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Citation Envoyé par Hurin Voir le message
    La propriété du Control est bien à Simple ici, mais ça ne change rien, il considère toujours mon \n comme un caractère normal,...

    Merci quand même !
    Justement c'est l'opposé du multiligne ...

  17. #17
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 461
    Par défaut
    Utilisez l'utilitaire Spy++ pour connaître les propriétés de votre contrôle "en live"

  18. #18
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 359
    Par défaut
    Merci bacelar pour m'avoir appris cette utilisation de Spy++, je ne savais pas.
    Malheureusement, j'ai vérifié en mettant le curseur sur mon IStatic, et ça me montre qu'il n'y a pas de Syles, ni d'Extended Styles qui ressemble à un Simple, ce qui correspond bien à ce que j'ai dans mon designer sous Visual,...

    @TheGzD, désolé, j'avais mal écrit, j'ai édité entre temps, je voulais dire que ma propriété Simple était bien à False, et malgré cela, je me retrouve avec cette image :
    image avec un \n dans mon CStatic avec Simple à false

    Mais, de toute manière, si dans mon code je fais ceci (ou c_IsoS est le contrôle associé à mon CStatic):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c_IsoS.SetWindowText("Montexte avec des \n,...");
    Là, ça se passe très bien, aucun problème, mes lignes sont bien sautées,...

    Mais par contre, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetUpStatic ( c_IsoS,					147 );
    ou SetUpStatic =

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void MaClasse::SetUpStatic ( ns_mfc_ex::CStaticEx &Ctrl, unsigned long iLabel )
    {
    	Ctrl.SetFont ( &m_FontLabel, TRUE );
    	CString st = ns_mfc_ex::CStringEx ( iLabel ); 
     // ici, st a bien des \n normaux,...
    	Ctrl.SetWindowText ( st);
    }
    Là, c'est mort, et ça ne vient pas du CString, puisque si j'initialise le CString avec un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    st= "test \n test";
    Ctrl.SetWindowText(st);
    Je n'ai aucun problème non plus, je ne sais aps ce que fait la classe ns_mfc_ex::CStringEx, mais visiblement elle empêche le CString de considérer les \n pour des retours chariots, c'est très perturbant,...


    OK, c'est résolu, le précédent développeur, un gars très sympa, a été contacté et a accepté de nous passer une nouvelle classe, qui accepte le multiligne, désolé du dérangement, mais je voulais être sûr que le problème venait du composant et pas de ma manière de programmer,...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/09/2014, 23h08
  2. [MFC] Débutant | Grille dans dialog Box
    Par Hannubis dans le forum MFC
    Réponses: 3
    Dernier message: 06/12/2005, 09h04
  3. [MFC] Débutant : Problème avec OnPaint()
    Par ZaaN dans le forum MFC
    Réponses: 14
    Dernier message: 05/12/2005, 13h15
  4. Réponses: 7
    Dernier message: 26/10/2005, 12h54
  5. [MFC] débutant probleme appel de fonction
    Par Gloubi99 dans le forum MFC
    Réponses: 9
    Dernier message: 30/08/2005, 15h40

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