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

C++ Discussion :

Les sauts de lignes ne sont pas pris en compte dans mon contrôle de type EDIT


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Les sauts de lignes ne sont pas pris en compte dans mon contrôle de type EDIT
    Bonjour,
    Dans un programme C++, je tente désespérément d'afficher dans un "EDIT" successivement plusieurs lignes séparées par des sauts de lignes. Or, le texte est bien affiché mais pas les sauts de ligne. J'utilise VS2013Community et dans les propriétés j'ai bien vérifié que le "charactere set" est Unicode.
    Je place les bouts de code qui me semble importants pour ceux qui tenteraient de m'aider.
    D'abord la création de l'EDIT depuis la WndProc de mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	case WM_CREATE:
    		edit = CreateWindow((LPCWSTR)(L"EDIT"), NULL, WS_BORDER | NULL | WS_CHILD | WS_VISIBLE | NULL | NULL, 35,150, 600, 200, hWnd, 0, hInst, 0);
    la fonction d'ajout du texte trouvé dans ce site ( mais je ne retrouve pas le lien )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void AppendText(HWND hEditWnd, LPCTSTR Text)
    {
    	int idx = GetWindowTextLength(hEditWnd);
    	SendMessage(hEditWnd, EM_SETSEL, (WPARAM)idx, (LPARAM)idx);
    	SendMessage(hEditWnd, EM_REPLACESEL, 0, (LPARAM)Text);
    }
    Et enfin l'ajout d'une ligne ( une seul suffit pour comprendre mon soucis ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	int const iSizeBuf = 100;
    	TCHAR buf[iSizeBuf];
    	//wsprintf(buf, TEXT("\r\nhShellTray : 0x%x \r\n"), hShellTray);
    	HRESULT hr = StringCbPrintf(buf, iSizeBuf, TEXT("\r\nhShellTray : 0x%x \r\n"), hShellTray);
    	AppendText(edit, buf);
    L'absence d'affichage a lieu aussi avec le wsprintf.
    C'est un peu comme si le "EDIT" était monoligne. Mais je pense que les EDIT sont obligatoirement Multilignes.
    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Salut,

    ~2s de Google sur ce truc inconnu https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
    Si tu n'utilises pas le flag ES_MULTILINE aucune chance qu'il soit multiligne.

    Btw, WS_BORDER | NULL | WS_CHILD | WS_VISIBLE | NULL | NULL les | NULL ne servent strictement à rien.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci Bousk,
    Je resterai débutant toute ma vie.
    Ca marche super.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ce cast ne sert à rien non plus, au passage:Pour un appel de CreateWindow() sans suffixe, la bonne syntaxe est TEXT("EDIT") (ou _T("EDIT") pour faire plus court, mais ça nécessite d'inclure <tchar.h>).
    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.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/12/2015, 15h29
  2. Réponses: 1
    Dernier message: 09/08/2010, 10h25
  3. \s n'est pas pris en compte dans mon regex
    Par xess91 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/03/2010, 17h13
  4. les retours chariots ne sont pas pris en compte dans le textbox
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/08/2009, 21h30
  5. [SQL] Création d'un forum en php : les sauts de ligne n'apparaissent pas
    Par x-day dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/08/2007, 20h40

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