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 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 055
    Points
    33 055
    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.

  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 381
    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 381
    Points : 41 582
    Points
    41 582
    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>).

+ 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